问题描述
我有一个包含10个外部模块的大项目。 显然,我启用了multidex,因为这些方法的总数超过10万。
现在,如果在项目中添加“ facebook-android”依赖项,则在启动应用程序时会出现ClassNotFound错误。
似乎该类未加载到classes.dex
。
如果删除此依赖项,则所有功能均正常运行。
恰好我有这个错误:
Suppressed: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
1楼
实际上,当您启用multidex时。 应用程序启动后,应用程序将加载所有其他dexes。 我在下面发布一些代码。
public static void install(Context context) {
Log.i("MultiDex", "install");
if(IS_VM_MULTIDEX_CAPABLE) {
Log.i("MultiDex", "VM has multidex support, MultiDex support library is disabled.");
} else if(VERSION.SDK_INT < 4) {
throw new RuntimeException("Multi dex installation failed. SDK " + VERSION.SDK_INT + " is unsupported. Min SDK version is " + 4 + ".");
}
所以
- 首先检查您的logcat以查看MultiDex是否遇到错误。
- 如果没有发现错误。 检查您的APK,确定org.slf4j.LoggerFactory是否内置在APK的dex文件中。