意外获得NoClassDefFoundError

时间:2015-06-25 08:22:35

标签: java android

我知道这可能听起来很愚蠢,但我这个问题已经好几天了。据我所知,我不是在重复任何问题。 在我的一些类中,当我尝试从其他类添加新方法或复制代码时,我得到NoClassDefFoundError。更有趣的是我在第3或第4个活动中更改了代码,但我在Splash Activity上收到此错误。我没有添加任何新库。只是简单地添加一个新方法或从其他类复制代码,我得到这个应用程序崩溃。现在它发生在几个班级。 由于我没有添加任何新库,它是否与我的PC或Android Studio有关?或者我的项目有问题? 这是我的依赖列表:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.squareup.picasso:picasso:2.5.0'
compile 'com.google.android.gms:play-services:7.3.0'
compile files('libs/isoparser-1.0.6.jar')
compile files('libs/aspectjrt-1.7.3.jar')
compile 'com.facebook.android:facebook-android-sdk:4.1.2'
compile 'org.twitter4j:twitter4j-core:4.0.3'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.1'
compile 'com.amazonaws:aws-android-sdk-core:2.2.1'
}

Dependencies hierarchy

这是错误:

06-25 13:20:36.247  21879-21879/com.ali.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.ali.myapp.SplashActivity$1$1
        at com.ali.myapp.SplashActivity$1.run(SplashActivity.java:47)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        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)

2 个答案:

答案 0 :(得分:1)

如果@CodeProcessor在答案中提到的以下步骤无法解决您的问题,请检查并确认您没有复制“libs”文件夹和gradle文件中的任何库。

例如,如果libs文件夹中的.jar文件名为“isoparser-1.0.6.jar”,并且您使用的是compile 'isoparser-1.0.6.jar'而不是compile files('libs/isoparser-1.0.6.jar'),那么这也会导致{{1 }}

答案 1 :(得分:0)

增量构建系统出了问题。其中一个应该有所帮助: 1.Menu Build - >重建项目 2.删除文件夹/构建 3.关闭Android Studio,删除/构建文件夹 4.右键点击你的项目 - > “打开模块设置” - >依赖选项卡 - >检查是否检查了库的导出