Android Studio启动时出现java.lang.NoClassDefFoundError错误

3

我在build.gradle中添加了模块依赖,Android Studio没有报错,没有编译错误。但是当我点击“运行”启动应用程序时,我遇到了java.lang.NoClassDefFoundError错误。

我正在使用Android Studio的Gradle。

我尝试了以下操作:gradle clean + gradle assemble并成功构建,但在启动时仍然失败。

我的build.gradle文件如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile files('libs/android-support-v4.jar')
    compile group:'com.deebl', name:'deebl-client-core', version:'0.0.1-SNAPSHOT'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

异常:

07-07 14:03:23.833      790-790/com.deebl                  E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: com.deebl.client.core.be.Movie
    at com.deebl.MainActivity.onCreate(MainActivity.java:15)
    at android.app.Activity.performCreate(Activity.java:5104)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    at android.app.ActivityThread.access$600(ActivityThread.java:141)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5041)
    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:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)

请发布异常的完整堆栈跟踪。 - Chris Stratton
我的错,刚刚添加了它。你有任何想法为什么会发生这种情况吗? - Gustavo Matias
三种可能原因之一:com.deebl.client.core.be.Movie 要么是拼写错误、被混淆工具(proguard 等)消除或重命名,要么依赖于某些东西(扩展库类等),但在安装时不存在,因此被安装程序自身从包中删除。在后一种情况下,如果您先完全卸载再安装,可能会在日志中看到一些信息,尽管我不能保证一定会出现。您还可以使用反编译工具来解包您的 apk 并查看实际存在的内容,这也可能很有趣。 - Chris Stratton
谢谢回复!奇怪的是,现在我已经把jar文件放到libs文件夹中,但是在执行gradle build之后,它仍然没有被添加到.apk文件中。 - Gustavo Matias
您可能需要修复构建配置。但是JAR文件不会出现在APK中,而是从它们编译或提取的类会出现在其中。 - Chris Stratton
1个回答

0

升级到 Android Studio 0.2.0 解决了它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接