Android库中的Android NoClassDefFound

时间:2016-09-20 13:56:59

标签: java android android-studio noclassdeffounderror multidex

我有一个Android库,我在两个不同的项目中使用它。在其中一个中,我可以正确使用该库。但是,在第二个项目中,我面临NoClassDefFound异常。

08-31 07:

49:23.155 7073-7073/com.my.android.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my.android.app, PID: 7073 java.lang.NoClassDefFoundError: com.my.android.library.MyClass

未找到的课程在APK内。我可以在classes.jar中看到它 当我进行debbuging时,我可以进入类的代码,但是当执行它时,它会崩溃。 最后,我安装了全新的Android Studio 2.2,我使用了APK分析器,我可以在classes.dex中看到未找到的类到底应该是什么。

1 个答案:

答案 0 :(得分:0)

您的项目和库依赖项可能已达到64K方法引用限制,这会导致创建多个dex文件。 要确保multidex是问题的根源,请尝试:

1-将multidex dependency添加到项目的build.gradle

    compile 'com.android.support:multidex:1.0.0'

2-将multiDexEnabled true添加到您的build.gradle文件中:

defaultConfig {
    applicationId "your.package.name"
    minSdkVersion 14
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}

3-为您的项目创建一个扩展MultidexApplication的应用程序类:

public class MyApplication extends MultiDexApplication

4-更改AndroidManifest.xml以使用MyApplication类作为应用程序的入口点:

    <application
    android:name=".MyApplication"  //the classpath to MyApplication
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">