我在项目中使用AndroidAnnotations,我想测试一个主持人. 测试套件运行,@Test方法显然在注射完成之前就调用了,因为每当我尝试在测试代码中使用`loginPresenter时,我都会得到NullPointerException. @RunWith(MockitoJUnitRunner.class) @EBean public class LoginPresenterTest { @Bean LoginPresenter loginPresenter; @Mock private LoginView loginView; @AfterInject void initLoginPresenter() { loginPresenter.setLoginView(loginView); } @Test public void whenUserNameIsEmptyShow
以下是关于 android-annotations 的编程技术问答
我还没有找到有关如何执行此操作的示例.我假设基于这样的示例是不可能的: @Bean(MyImplementation.class) MyInterface myInterface; 已经确定了要注入的课程. 解决方案 问题是,您是单元测试还是集成测试? 如果您是单元测试,我建议通过使用二传剂并尝试在不涉及的依赖项注入框架的情况下测试Java代码来使用Mocks使用模拟.这将孤立地测试您的班级,并避开很多复杂性. 我的意思是: public class Test{ ClassInTest inTest; MyInterface myInterface; @Before public void setup(){ inTest = new ClassInTest(); //or your favorite mocking frameowrk myInterface =
是否可以将Androidantations Maven设置适应Gradle? http://code.google.com/p/androidannotations/androidannotations/wiki/wiki/maveneclipseplipseclipse 我似乎无法使它起作用,我一直在得到com.sun.codemodel#codemodel;2.5-FROZEN-AA: not found 到目前为止,我有这个 description = "App" abbreviation = "App" version = '1.0.0.BUILD-SNAPSHOT' buildscript { repositories { mavenRepo name: 'gradle-android-plugin', urls: 'http://jvoegele.com/maven2/' mavenRepo name: 'androida
好的. 我正在尝试创建一个通过使用Maven而仅使用Maven的项目. 目前,我将面临正在生成的课程和正常工作的问题,只要实际的Java代码中没有参考. 的意思是,如果我在我做 之类的事情 意图i = new Intent(settingSactivity _); 然后,构建失败了 未能执行目标org.apache.maven.plugins:maven-compiler-plugin:3.0:compile(default-compile)project fromptfind: 编译失败找不到符号 cannot find symbol symbol: variable DerpActivity_ location: class be.company.android.DisplayMapActivity 但是,文件确实会生成,如您在附加的图像中所看到的那样,但是当在Eclipse视图中查看项目时,它们仅被视为普通文件夹,而不是"源文件夹
我有一个Android Maven项目,并且很难使用ActionBar保持兼容性. 在使用 ActionBarsherlock 之前,我看到Google发布了 v7支持库的目标.我决定删除ActionBarsherlock的依赖性并使用V7.我尝试了几种方法: 1-导入文件夹" Android -SDK \ Extras \ Android \ support \ v7 \ appCompat"作为"现有的Android代码"在Eclipse IDE上的工作空间中,并将其注册为库.但是该项目停止识别框架AndroidAnnotations生成的类.例如登录_ 2-使用存储库添加maven appcompat -v7依赖关系,显示此问题.但是我无法进行项目编译,甚至尝试了不同的依赖配置. 是否有人使用Maven建立了一个使用Library支持V7的Android项目?你能帮我吗? 解决方案 在2.2设备中实现ActionBar和其他功能词,例如ViewPager
我在我目前正在处理的示例项目中使用androidannotations(2.5). 由于您可以用例如@EActivity,@ViewById,@Click来注释您的类Android注释供电的应用程序. 我很想听到有关此事的一些意见. 欢呼, 解决方案 我回复了类似的帖子在这里. 您有几个选项可供您使用.当然,您可以测试您的代码预发行,我声称的是一种更单位的测试样式.这应该孤立地测试Java代码,最好是无需生成的代码. 您还可以在发电后测试代码. AA生成的MyActivity _类可以在编译时间后直接实例化并相应地测试.我声称这正在朝着集成测试样式. 虽然我认为测试总是比测试要好,但我认为,对于集成测试,您应该在类似于生产的情况下对硬件进行测试.这使您可以全面了解您的应用程序在现实世界中的表现.因此,对于集成测试,我更喜欢高级"一切都很好地融合在一起"测试. robolectric 和 Robotium 可以极大地帮助这两项努力. Rob
在更新为ADT22之前,该项目构成了奇迹.我已经因为不知道我必须下载构建工具而损失了一天,恐怕我会因为这个而放松另一个. 当我尝试构建两天前工作的相同代码时,我会得到这个例外: com.cidaut.blueparking fatal error : Unable to instantiate activity \ ComponentInfo{com.cidaut.blueparking/com.cidaut.blueparking.SplashScreen_}: \ java.lang.ClassNotFoundException: \ Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \ /data/app/com.cidaut.blueparking-1.apk java.lang.RuntimeException: Unable to instantiat
在2.3.0之前使用Android注释,一个人会这样做: dependencies { apt "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" } 要使用kotlin,您将使用kapt代替apt(链接). 自2.3.0以来,一个人需要使用AnnotationProcessor而不是APT: annotationProcessor "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" 有人知道需要更改什么才能将Kotlin与AnnotationProcessor一起使用
RequiresApi和TargetApi? 之间有什么区别 kotlin中的样本: @RequiresApi(api = Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M) class FingerprintHandlerM() : FingerprintManager.AuthenticationCallback() 注意:FingerprintManager.AuthenticationCallback需要API M 注2:如果我不使用targetapi lint失败,则与错误class requires api level 23... 解决方案 @RequiresApi - 表示只有在给定的API级别或更高级别上调用带注释的元素. @TargetApi - 指示皮棉应将这种类型视为定位给定的API级别,无论项目目标是什么. 其他解决方案 我首先假设您的Min API版本低于您要
我已经检查了一些不同的问题,但他们都没有提供一个为我工作的解决方案.我正在开发一个有Android注释的项目,当我尝试构建我的项目时,它会失败,因为以下错误(Project_location只是我的本地项目文件夹): 错误:无法在指定路径中找到androidmanifest.xml文件:[/project_location/mobile/build/intermediates/manifests/full/debug/androidmanifest.xml] 这是我的mobile build.gradle文件: apply plugin: 'com.android.application' ext.androidAnnotationsVersion = '3.3.2'; ext.eventBusVersion = '2.4.0'; buildscript { repositories { jcenter() } depende
我刚刚尝试更新我的项目,它使用Android注释来包含MonkeyTalk代理.但是,一旦我将项目切换到一个方面,我的所有Android注释都没有识别. 在Android注释项目中有任何成功使用MonkeyTalk? 我正在使用Eclipse 4.2 SR2. 它看起来像这个问题已经在android注释常见问题解答: https://github.com/excilys/androidannotations/wiki/faq#wiki-aspectj 为了"修复"它,您必须删除/替换某些项目属性.我担心这样做会导致monkeytalk不起作用,但我还没有尝试过. 任何见解赞赏! 解决方案 之前我正面临着这个问题.我在 faq页面的aa .你能测试它并让我更新吗? 其他解决方案 我已经实现了解决方案,但仍然仍然无法识别我的Android注释引用,请告诉我是否有任何其他方法来解决它.
我正在使用AndroidStudio 0.8.9并与Gradle一起构建. 我正在使用Android通用,并且运行良好.而且我也想使用factexj,因此请应用插件(但编译失败,然后投掷一些错误消息 :app:compileDebugJava Internal compiler error: java.lang.IllegalStateException: java.lang.IllegalArgumentException: Unknown location : SOURCE_OUTPUT at org.aspectj.org.eclipse.jdt.internal.compiler.apt.dispatch.BatchAnnotationProcessorManager.discoverNextProcessor(BatchAnnotationProcessorManager.java:183) :app:compileDebugAspectj FAILED FAIL
我正在尝试使用AndroidAnnotations的静止器,但是当我调用客户端中的一种方法时,我会收到以下错误: 04-10 10:07:23.624 7528-7528/eu.shareforce.vitens E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.VerifyError: org/springframework/http/converter/xml/SourceHttpMessageConverter at org.springframework.web.client.RestTemplate.(RestTemplate.java:149) at eu.shareforce.vitens.Interfaces.VitensRestClient_.(VitensRestClient_.java:23) at eu.shareforce.vit
我正在使用AA,并且想指定两个不同的XML布局文件以肖像和景观方向. 在我的Java类中,被标记为熟悉的一种用@Click注释的方法来响应点击事件. 在肖像模式下,一切都很好.但是,当手机旋转时,布局会更改,并且按钮不再响应. 我的猜测是,@eeectivity注释后提供的布局是肖像布局. 我如何同时提供肖像和景观布局? 预先感谢. 更新 我使用两个不同的布局文件来"听"方向更改,以构成肖像,该肖像名为Layout/Contact.xml,另一个命名为命名为Layout-Land/Contact.xml的景观. Android完成其余的并根据电话方向使用正确的布局. 要注册侦听器单击事件,我使用Android注释: contact.xml
因此,我的项目正在编译和运行良好的utlll i I注射@RestService @restservice @EActivity(R.layout.activity_main) public class MainActivity extends AppCompatActivity { @RestService RestInterface restInterface; ... } myrestclient: @Rest(rootUrl = "http://153.19.215.46:8080/api", converters = {MappingJackson2HttpMessageConverter.class}) public interface RestInterface { @Post("/device/rgbled/light") String lightLed(@Body String color); } 一些消息来源使我认为它可能会使用多端X型
我有一个可以穿衣的课程,其数据成员由字符串,整数,布尔值,日期和其他由相同类型的物体组成的包裹对象组成.不过,在树的尽头,只有字符串,整数,布尔值和日期(java.util.date). 我有一个@EActivity,@Extra entity是这些包裹物的对象之一. 我也有一个@EFragment,@FragmentArg也称为entity.当我启动活动时,我将entity传递到活动,在onCreate中,活动将其传递到片段. 但是,我得到了这个奇怪的例外,没有任何意义: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.app/ com.my.app.NavControllerActivity_}: java.lang.IllegalArgumentException: is not a constant in android.text.Layout$Alig
我有一个偏爱性,我想与AndroidAnnotations @sharedPref一起使用,因此偏好性将在@sharedpref中使用数据. 有一个很好的方法吗?如何告诉活动要使用我在其他地方创建的@sharedpref?有没有设置每个偏好值的好方法? 这是我目前正在使用的活动代码: public class SettingsActivity extends PreferenceActivity { @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } 解决方案 a 偏好性是活动,因此您只需要用
我正在使用 android注释框架,特别是用于REST集成. 我有以下代码. 主机配置的接口 public interface Host { public String URL = "http://192.168.2.137"; } 和用于休息通信的注释接口. @Rest(rootUrl = Host.URL, converters = { MappingJacksonHttpMessageConverter.class }) public interface RestClient { @Get("/entities.json") Entity[] allEntities(); } 我的问题是,为什么注释属性rest.rooturl必须是恒定的表达式?我如何将字符串资源用于REST.ROOTURL? 我想做 之类的事情 @EBean public class Host{ @StringRes String URL
我正在尝试使用匕首注入Android注释的活动. java.lang.IllegalArgumentException: No inject registered for members/com.app.server.AddServerActivity_. You must explicitly add it to the 'injects' option in one of your modules. 如果我尝试将com.app.server.AddServerActivity_添加到模块中,我会得到一个不同的错误 Error: java.lang.ClassCastException: com.sun.tools.javac.code.Attribute$Error cannot be cast to com.sun.tools.javac.code.Attribute$Class java.lang.RuntimeException: java.lang.Clas