我在持续发展中有 apk 。
过去几周,我在大多数(但不是全部)场合看到Android java.lang.NoClassDefFoundError
我在Android平板电脑上运行来自Eclipse的apk。
在那些失败的情况下,如果我从平板电脑重新启动apk(即没有重新加载),那么在大多数情况下它运行良好而不会发生错误。
此外,如果在失败后我清理项目并从Eclipse运行,那么它有时(但不总是)第一次运行正常。
我在java.lang.NoClassDefFoundError
咨询了许多在线讨论,但我发现没有人提到给定apk的间歇性行为。
类加载器可能在apk的不同运行中表现不同吗?
任何人都可以提供建议吗?
谢谢。
这是logcat提取:
12-04 18:37:52.356: E/AndroidRuntime(16868): FATAL EXCEPTION: main
12-04 18:37:52.356: E/AndroidRuntime(16868): java.lang.NoClassDefFoundError: kelsius/objects/ModulesManager
12-04 18:37:52.356: E/AndroidRuntime(16868): at kelsius.layout.InsideDashboardActivity$29.onClick(InsideDashboardActivity.java:2361)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.view.View.performClick(View.java:3511)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.view.View$PerformClick.run(View.java:14109)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.os.Handler.handleCallback(Handler.java:605)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.os.Handler.dispatchMessage(Handler.java:92)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.os.Looper.loop(Looper.java:137)
12-04 18:37:52.356: E/AndroidRuntime(16868): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-04 18:37:52.356: E/AndroidRuntime(16868): at java.lang.reflect.Method.invokeNative(Native Method)
12-04 18:37:52.356: E/AndroidRuntime(16868): at java.lang.reflect.Method.invoke(Method.java:511)
12-04 18:37:52.356: E/AndroidRuntime(16868): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-04 18:37:52.356: E/AndroidRuntime(16868): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-04 18:37:52.356: E/AndroidRuntime(16868): at dalvik.system.NativeStart.main(Native Method)
12-04 18:37:52.876: I/dalvikvm(16868): threadid=3: reacting to signal 3
它总是在找不到相同的类时失败。
然而,早些时候它失败了一个不同的类,但从那以后我重构了我的代码。