草庐IT

dagger-compiler

全部标签

Java条件编译: how to prevent code chunks from being compiled?

我的项目需要Java1.6才能编译和运行。现在我需要让它与Java1.5一起工作(从营销方面)。我想替换方法体(返回类型和参数保持不变)以使其与Java1.5一起编译而不会出错。详细信息:我有一个名为OS的实用程序类它封装了所有特定于操作系统的东西。它有一个方法publicstaticvoidopenFile(java.io.Filefile)throwsjava.io.IOException{//openthefileusingjava.awt.Desktop...}通过双击打开文件(startWindows命令或openMacOSX命令等效)。由于它不能用Java1.5编译,我想在

java - 升级到 Gradle 2.0 : Could not find property 'Compile' on root project 后

为避免在构建我的Java源代码时出现有关特殊字符的警告,我将这一行放在我的gradle.build中,它在升级到Gradle2.0之前运行良好:tasks.withType(Compile){options.encoding="UTF-8"}升级后,失败并出现以下错误:Couldnotfindproperty'Compile'onrootproject我该如何解决这个问题? 最佳答案 换行tasks.withType(JavaCompile){options.encoding="UTF-8"}修复了问题。

java - 使用 Dagger 2 进行 Android 单元测试

我有一个使用Dagger2进行依赖注入(inject)的Android应用。我还在使用最新的gradle构建工具,它允许构建变体用于单元测试和一个用于仪器测试。我在我的应用程序中使用java.util.Random,我想模拟它以进行测试。我正在测试的类不使用任何Android的东西,所以它们只是普通的java类。在我的主代码中,我在扩展Application类的类中定义了一个Component,但在单元测试中我没有使用Application。我尝试定义一个测试Module和Component,但Dagger不会生成Component。我也尝试使用我在应用程序中定义的Component并

android - Kotlin,Java,multidex,Dagger 2,Butterknife 和 Realm : transformClassesWithJarMergingForDebug: duplicate entry: org/jetbrains/annotations/NotNull. 类

我们有现有的JavaAndroid代码。我们想轻松地慢慢开始迁移到Kotlin。我们使用Dagger2、Butterknife和Realm。我们使用Java8编译器(但我们的targetCompatibility和sourceCompatibility是1.7)。我已经在网上漫游了几个小时,看到了SO、GitHub对话等,并设法解决了除一个以外的所有问题:构建成功,但是在尝试调试时,我们得到:Error:Executionfailedfortask':app:transformClassesWithJarMergingForDebug'.>com.android.build.api.t

java - 带有 Kotlin 的 Dagger 2,在 ApplicationComponent 中返回具有泛型的类型

我想返回泛型类型以由子图公开,问题出在自动生成的java类中,我尝试做一些事情,但解决它的一种方法是从AppComponent中删除泛型类型和返回简单对象。还有更“正确”的方法吗?这是AppComponent@Singleton@Component(modules=arrayOf(ApplicationModule::class))interfaceApplicationComponent{funinject(activity:BaseActivity>)//...fundataBase():Database}这是ApplicationModule中的函数@Provides@Singl

java - @Generated 注解使用 gradlew + dagger

我在使用gradlew(4.10.2)+dagger(2.18)时遇到了一个奇怪的问题。问题是当我打电话时:./gradlew:app:compileDebugAndroidTestKotlin构建失败:Task:Common:compileDebugJavaWithJavacFAILED/CommonModule_ProvidesGsonFactory.java:6:error:packagejavax.annotation.processingdoesnotexistimportjavax.annotation.processing.Generated;/CommonModule_

android - Kotlin 中 Dagger 2 的未解决引用

我正在尝试在我使用Kotlin进行编码的Android项目中使用Dagger2。我从Dagger2repoandroid-simple中举了一个例子.我已经使用dagger-android-gradle-sample中的示例成功地在AndroidStudio中正确配置了项目。,它包含正确配置的gradle文件。现在我开始将java类更改为kotlin。这就是自动转换的DemoApplication.java在kotlin中的样子:publicclassDemoApplication:Application(){SingletonComponent(modules=array(javaC

android - Kotlin + Dagger - 为 ViewModel 工厂注入(inject) Map

我正在使用带有Dagger2的新架构组件,我想使用工厂类注入(inject)我的ViewModel。Factory类本身是可注入(inject)的。当Factory类在Java中定义时,这一切都很好,但是当我将它转换为Kotlin时,Dagger2不知道如何为构造函数生成Map,而在Java中它知道如何生成。我认为不同之处在于,转换后,Factory类使用kotlin包中的Map,而不是java.util.Map包中的Map。如何让Dagger2为Factory构造函数生成map?这是工厂类@ActivityScopeclassMainActivityViewModelFactory@

android - 如果没有 @Provides 方法,则无法提供 Dagger 2 Named

尝试深入了解Dagger2并遇到命名提供程序的问题。我有一个简单的设置如下://Module@ModuleclassAppModule(privatevalapp:App){@Provides@AppScopefunprovidesApp()=app@Provides@AppScopefunprovideSharedPreferences(app:App)=PreferenceManager.getDefaultSharedPreferences(app)@Provides@AppScope@Named("Uri1")funprovidesUri1()=Uri.Builder().sc

Kotlin 和 Dagger : Can I use @Inject to an object still make it nullable/optional?

由于某些设备上发生的运行时错误,我需要一些可以使我的类为空/可选的东西。这可能吗?classMyFragmentextendsFragment{@Injectvarpresenter:MyPresenter?=null//Othercodeshere...}我想使用presenter作为选项,因为某些旧的Android设备尤其会抛出此错误(这是在我删除lazyinit之前)。代码:classMyFragmentextendsFragment{@Injectlazyinitvarpresenter:MyPresenter?=null//Othercodeshere...overridef