Dagger2生成的类在Android中不可访问<;5

Dagger2生成的类在Android中不可访问<;5,android,dagger-2,Android,Dagger 2,我有一个项目,使用匕首2和它的补充自动匕首。我的主要测试设备是装有KitKat和棒棒糖的Genymotion仿真器,我在它们之间模糊地切换 昨天我发现,在emulator或带有4.x的真实设备上运行该项目会在应用程序启动时导致以下异常: 11-20 15:36:31.637 7189-7189/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.chiskosystems.de

我有一个项目,使用匕首2和它的补充自动匕首。我的主要测试设备是装有KitKat和棒棒糖的Genymotion仿真器,我在它们之间模糊地切换

昨天我发现,在emulator或带有4.x的真实设备上运行该项目会在应用程序启动时导致以下异常:

   11-20 15:36:31.637 7189-7189/? E/AndroidRuntime: FATAL EXCEPTION: main
   java.lang.NoClassDefFoundError:   com.chiskosystems.debito.DebitoAppModule_ProvideRestAdapterFactory 
    at com.chiskosystems.debito.DaggerDebitoAppComponent.initialize(DaggerDebitoAppComponent.java:30)
    at com.chiskosystems.debito.DaggerDebitoAppComponent.<init>(DaggerDebitoAppComponent.java:19)
    at com.chiskosystems.debito.DaggerDebitoAppComponent.<init>(DaggerDebitoAppComponent.java:11)
    at com.chiskosystems.debito.DaggerDebitoAppComponent$Builder.build(DaggerDebitoAppComponent.java:72)
    at com.chiskosystems.debito.DebitoApp.setupComponent(DebitoApp.java:130)
    at com.chiskosystems.debito.DebitoApp.onCreate(DebitoApp.java:75)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
    at android.app.ActivityThread.access$1300(ActivityThread.java:130)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4745)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)
显示一个结果。此外,该项目在L和M运行良好

前进规则 生成警告(这些只是部分) 我正在使用

compile 'com.google.dagger:dagger:2.1-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.1-SNAPSHOT'
provided 'org.glassfish:javax.annotation:10.0-b28'

apt 'com.github.lukaspili.autodagger2:autodagger2-compiler:1.1'
compile 'com.github.lukaspili.autodagger2:autodagger2:1.1'
provided 'javax.annotation:jsr250-api:1.0'
切换构建工具也没有帮助。对于任何可能出错的指示,我们都非常感激

编辑 它们开始出现,并且在每个构建中保持不变:

/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/debito/ui/activities/activity/DaggerMainActivityComponent.java
Warning:(54, 75) [unchecked] unchecked method invocation: method create in class MainActivity_MembersInjector is applied to given types
required: MembersInjector<BaseActivity>,Provider<MainActivityPresenter>
found: MembersInjector,Provider<MainActivityPresenter>
Warning:(54, 76) [unchecked] unchecked conversion
required: MembersInjector<BaseActivity>
found:    MembersInjector
Warning:(54, 75) [unchecked] unchecked conversion
required: MembersInjector<MainActivity>
found:    MembersInjector
/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/debito/ui/activities/splash/DaggerLoginActivityComponent.java
Warning:(54, 77) [unchecked] unchecked method invocation: method create in class LoginActivity_MembersInjector is applied to given types
required: MembersInjector<BaseActivity>,Provider<LoginPresenter>
found: MembersInjector,Provider<LoginPresenter>
Warning:(54, 78) [unchecked] unchecked conversion
required: MembersInjector<BaseActivity>
found:    MembersInjector
Warning:(54, 77) [unchecked] unchecked conversion
required: MembersInjector<LoginActivity>
found:    MembersInjector
/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/Debito/ui/activities/activity/daggermaniactivitycomponent.java
警告:(54,75)[未选中]未选中的方法调用:在类MainActivity_MembersInjector中创建的方法应用于给定类型
必需:MembersInjector,提供程序
找到:MembersInputor,提供程序
警告:(54,76)[未选中]未选中的转换
必需:MembersInjector
找到:MembersInjector
警告:(54,75)[未选中]未选中的转换
必需:MembersInjector
找到:MembersInjector
/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/Debito/ui/activities/splash/DaggerLoginActivityComponent.java
警告:(54,77)[未选中]未选中的方法调用:类LoginActivity_MembersInjector中的方法创建应用于给定类型
必需:MembersInjector,提供程序
找到:MembersInputor,提供程序
警告:(54,78)[未选中]未选中的转换
必需:MembersInjector
找到:MembersInjector
警告:(54,77)[未选中]未选中的转换
必需:MembersInjector
找到:MembersInjector

dagger 2.0.2版也会发生这种情况吗?您是否尝试删除单个proguard规则?如果在proguard中使用
dontoptimize
标志会发生什么情况?是的,2.0.2也会发生这种情况。我不确定Proguard是否应该受到责备。该项目上周运行良好,一段时间内没有给PG添加任何内容。这是一个非常奇怪的问题,因为现在我的项目甚至不会在达到GC开销限制的情况下编译异常:(看起来我有JVM问题,现在已经解决了。经过两天的更改库、Proguard配置、将repo克隆到一个干净的目录,甚至清理机器中的每一个部分,我回到了生成的代码是罪魁祸首的地步。我添加了
dontoptimize
,结果与Dagger2.0.2相同。请注意AppModule上列出的我的所有依赖项都会显示错误:我有四个类,崩溃在其中一个类之间随机发生,而不仅仅是在一个类上。如果禁用proguard并使用Multidex会发生什么情况?在我们上线时,我将在某个时候需要启用它以保护代码。几周前我添加了Multidex。这种情况会在上发生吗dagger版本2.0.2也是如此?你有没有尝试过删除单独的proguard规则?如果你在proguard中使用
dontoptimize
标志会怎么样?是的,2.0.2也会这样。我不确定proguard是否应该受到责备。该项目上周运行良好,有一段时间没有向PG添加任何内容。这是一个非常奇怪的问题,because现在我的项目甚至不会在达到GC开销限制的情况下编译异常:(看起来我有JVM问题,现在已经解决了。经过两天的更改库、Proguard配置、将repo克隆到一个干净的目录,甚至清理机器中的每一个部分,我回到了生成的代码是罪魁祸首的地步。我添加了
dontoptimize
,结果与Dagger2.0.2相同。请注意AppModule上列出的我的所有依赖项都会显示错误:我有四个类,崩溃在其中一个类之间随机发生,而不仅仅是在一个类上。如果禁用proguard并使用Multidex会发生什么情况?在我们上线时,我将在某个时候需要启用它以保护代码。几周前我添加了Multidex。
Note: com.google.android.gms.internal.zzlf$1: can't find dynamically referenced class com.facebook.login.LoginResult
Note: com.google.android.gms.internal.zzlf$1: can't find dynamically referenced class com.facebook.FacebookException
Note: com.google.android.gms.internal.zzlf$1: can't find dynamically referenced class com.facebook.AccessToken
Note: com.google.android.gms.internal.zzlf$2: can't find dynamically referenced class com.facebook.SessionState
Note: com.google.android.gms.maps.internal.zzy: can't find dynamically referenced class com.google.android.gms.maps.internal.CreatorImpl
Note: com.google.gson.internal.UnsafeAllocator: can't find dynamically referenced class sun.misc.Unsafe
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class com.android.org.conscrypt.OpenSSLSocketImpl
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class android.net.TrafficStats
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class android.net.Network
Note: retrofit.Platform: can't find dynamically referenced class android.os.Build
Note: retrofit.Platform: can't find dynamically referenced class rx.Observable
Note: android.support.multidex.MultiDexExtractor accesses a method 'apply()' dynamically
Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'icon' dynamically
      Maybe this is program field 'android.support.design.R$attr { int icon; }'
      Maybe this is program field 'android.support.design.R$id { int icon; }'
      Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { int icon; }'
      Maybe this is program field 'android.support.v7.appcompat.R$attr { int icon; }'
      Maybe this is program field 'android.support.v7.appcompat.R$id { int icon; }'
      Maybe this is program field 'android.support.v7.mediarouter.R$attr { int icon; }'
      Maybe this is program field 'android.support.v7.mediarouter.R$id { int icon; }'
      Maybe this is program field 'com.chiskosystems.debito.R$attr { int icon; }'
      Maybe this is program field 'com.chiskosystems.debito.R$id { int icon; }'
      Maybe this is program field 'io.fabric.sdk.android.services.settings.AppRequestData { io.fabric.sdk.android.services.settings.IconRequest icon; }'
      Maybe this is program field 'io.fabric.sdk.android.services.settings.AppSettingsData { io.fabric.sdk.android.services.settings.AppIconSettingsData icon; }'
compile 'com.google.dagger:dagger:2.1-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.1-SNAPSHOT'
provided 'org.glassfish:javax.annotation:10.0-b28'

apt 'com.github.lukaspili.autodagger2:autodagger2-compiler:1.1'
compile 'com.github.lukaspili.autodagger2:autodagger2:1.1'
provided 'javax.annotation:jsr250-api:1.0'
/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/debito/ui/activities/activity/DaggerMainActivityComponent.java
Warning:(54, 75) [unchecked] unchecked method invocation: method create in class MainActivity_MembersInjector is applied to given types
required: MembersInjector<BaseActivity>,Provider<MainActivityPresenter>
found: MembersInjector,Provider<MainActivityPresenter>
Warning:(54, 76) [unchecked] unchecked conversion
required: MembersInjector<BaseActivity>
found:    MembersInjector
Warning:(54, 75) [unchecked] unchecked conversion
required: MembersInjector<MainActivity>
found:    MembersInjector
/home/chisko/AndroidStudioProjects/Debito/app/build/generated/source/apt/debug/com/chiskosystems/debito/ui/activities/splash/DaggerLoginActivityComponent.java
Warning:(54, 77) [unchecked] unchecked method invocation: method create in class LoginActivity_MembersInjector is applied to given types
required: MembersInjector<BaseActivity>,Provider<LoginPresenter>
found: MembersInjector,Provider<LoginPresenter>
Warning:(54, 78) [unchecked] unchecked conversion
required: MembersInjector<BaseActivity>
found:    MembersInjector
Warning:(54, 77) [unchecked] unchecked conversion
required: MembersInjector<LoginActivity>
found:    MembersInjector