Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用multidex找不到Android类_Android_Gradle_Android Multidex - Fatal编程技术网

使用multidex找不到Android类

使用multidex找不到Android类,android,gradle,android-multidex,Android,Gradle,Android Multidex,我有一个有10个外部模块的大项目。显然,我启用了multidex,因为这些方法的总数超过了100k 现在,如果我在项目中添加“FacebookAndroid”依赖项,我在启动应用程序时会出现一些错误ClassNotFound。似乎该类未加载到classes.dex。如果删除此依赖项,则所有操作都正常 确切地说,我有一个错误: Suppressed: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 实际上,当您启用多索引时。一旦

我有一个有10个外部模块的大项目。显然,我启用了multidex,因为这些方法的总数超过了100k

现在,如果我在项目中添加“FacebookAndroid”依赖项,我在启动应用程序时会出现一些错误ClassNotFound。似乎该类未加载到
classes.dex
。如果删除此依赖项,则所有操作都正常

确切地说,我有一个错误:

Suppressed: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

实际上,当您启用多索引时。一旦应用程序启动,应用程序将加载所有其他索引。我在下面贴了一些代码

 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 + ".");
    } 
publicstaticvoid安装(上下文){
Log.i(“多索引”、“安装”);
if(是否支持虚拟多索引){
i(“MultiDex”,“VM具有MultiDex支持,MultiDex支持库已禁用”);
}else if(VERSION.SDK_INT<4){
抛出新的运行时异常(“多索引安装失败。不支持SDK“+VERSION.SDK_INT+”。最小SDK版本为“+4+”);
} 
所以

  • 首先检查日志,查看MultiDex是否出现错误。
  • 如果没有发现错误。请检查您的APK,了解是否存在错误 org.slf4j.LoggerFactory已在APK的dex文件中构建。

  • 请添加完整的异常堆栈跟踪和
    build.gradle
    的依赖项。