我有一个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中看到未找到的类到底应该是什么。
答案 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">