android运行时,出现java.lang.NoClassDefFoundError

时间:2023-01-19 21:13:48

这个一般是在将dex分成多个文件时会出现这个错误。


 java.lang.NoClassDefFoundError: ×××××××


这是因为你的这个类没有打包进 main dex 中,所以在调用时,找不见。

有三种方法解决这种问题,选一个即可:


解决方法1:

配置xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>

方法2:

Application类继承MultiDexApplication

public class MyApplication extends MultiDexApplication { .. }


方法3:

在Application 中调用 MultiDex.install(this)

public class MyApplication {
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
....
}
....
}

参考了 Stack Overflow 上的文章: 链接