rsa*_*ale 9 java android roboguice android-multidex
这在特定的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)
Run Code Online (Sandbox Code Playgroud)
RoboGuice 3.0已经记录了一个问题:https://github.com/roboguice/roboguice/issues/328
但没有回应,我们目前被阻止.
这次我更仔细地提到了MultiDex Document,并将我更新AndroidManifest.xml到了我错过的下面
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
我建议做以下事情——
通过尝试使用 Proguard 运行发布版本来删除未使用的函数并减少 dex 中的函数数量,检查这是否是 65k 方法限制(multidex)问题。
当静态变量/对象初始化期间抛出异常时,也可能导致 java.lang.NoClassDefFoundError。检查您是否正在使用/继承 RoboGuice 类或使用具有静态对象或代码块的初始化代码。问题可能就出自那里。
另外,看看RoboGuice 3.0 NoClassDefFoundError: AnnotationDatabaseImpl,它可能会对您有所帮助(尽管用户收到的错误是关于另一个类的,但它们的初始化是静态对象的初始化)。
祝你好运。
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |