【发布时间】:2016-04-17 22:44:19
【问题描述】:
这并不总是可见,但在特定的 API 14 和 19 上可见。
下面是堆栈跟踪
java.lang.NoClassDefFoundError: roboguice.inject.ContextScopedRoboInjector
at roboguice.RoboGuice.getInjector(RoboGuice.java:197)
at roboguice.activity.RoboActivity.onCreate(RoboActivity.java:90)
at com.bnmcombines.galleryflavors.Launcher.onCreate(Launcher.java:71)
at android.app.Activity.performCreate(Activity.java:5343)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)
at android.app.ActivityThread.access$900(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5345)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
at dalvik.system.NativeStart.main(Native Method)
RoboGuice 3.0 已经记录了一个问题:https://github.com/roboguice/roboguice/issues/328
但没有回应,我们目前被阻止。
问题已解决
这次我更仔细地参考了MultiDex Document,并将我的AndroidManifest.xml更新到了我错过的下方
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
【问题讨论】:
-
你在 build.gradle 中使用了 proguard 吗?
-
它用于发布构建类型而不是在调试中,我在调试运行时遇到此错误
-
似乎是一个多索引问题。您是否使用 multidex 进行调试构建?
-
是的,我正在使用 multidex,我想我的应用程序仅适用于 Android 5.0 及更高版本,因此不适用于 Android 5.0 及更高版本。可能 RoboGuice 在内部添加了很多函数调用。我将尝试更新我的应用程序并返回。感谢您指出这一点。
-
@rsakhale 我可以在这里给出我的答案,但你的问题还没有解决,你能发布你的 build.gradle 文件吗?应用程序启动时是否有任何 RoboGuice 声明,例如应用程序类?
标签: java android roboguice android-multidex