【发布时间】:2013-04-18 00:14:47
【问题描述】:
过去几个月我一直在和一些同事一起做一个项目,当我们完成最终的 android 构建时,我们中的一些人开始在我们的LogCat 中获得noclassdeffrounderror,那时我们将在我们的设备。代码没有改变,它引用调用的类与无法找到的类处于同一级别,位于同一包中。该项目在其他计算机上运行,看起来有点随机。我已经尝试了一切来解决这个问题,但没有一个奏效。如果我在另一台可以编译的计算机上编译代码并制作一个 apk,它运行良好。但如果从有错误的计算机编译,它总是会崩溃。救命!
04-17 20:05:55.929: E/AndroidRuntime(12615): FATAL EXCEPTION: main
04-17 20:05:55.929: E/AndroidRuntime(12615): java.lang.NoClassDefFoundError: com.team.catswithhats.AndroidGPS
04-17 20:05:55.929: E/AndroidRuntime(12615): at com.team.catswithhats.MainActivity.onCreate(MainActivity.java:14)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.Activity.performCreate(Activity.java:5104)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.os.Looper.loop(Looper.java:137)
04-17 20:05:55.929: E/AndroidRuntime(12615): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-17 20:05:55.929: E/AndroidRuntime(12615): at java.lang.reflect.Method.invokeNative(Native Method)
04-17 20:05:55.929: E/AndroidRuntime(12615): at java.lang.reflect.Method.invoke(Method.java:511)
04-17 20:05:55.929: E/AndroidRuntime(12615): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-17 20:05:55.929: E/AndroidRuntime(12615): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-17 20:05:55.929: E/AndroidRuntime(12615): at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
你在用proguard吗?
-
proguard.cfg 文件在其中,但不在项目属性中。删除它并不能解决问题。
-
在那台机器上,包含此类文件的包是否标记为源文件夹?
-
会不会是不同的电脑运行不同版本的ADT?因为他们中的一些人似乎有这个问题。参见例如这里android.foxykeep.com/dev/… 或这里stackoverflow.com/questions/10059152/…
-
@LuxuryMode 该项目在计算机之间是相同的,但看起来并不如此。一台计算机运行 ADT,另一台(不运行)运行带有插件的 Juno。我相信他们都是最新的。它以前从未引起过问题。