Facebook SDK Android,java.lang.RuntimeException:无法获取提供程序com.Facebook.internal.FacebookInitProvider

Facebook SDK Android,java.lang.RuntimeException:无法获取提供程序com.Facebook.internal.FacebookInitProvider,android,facebook,Android,Facebook,以前有人在Android版Facebook SDK中遇到过这个错误吗 java.lang.RuntimeException:无法获取提供程序 com.facebook.internal.FacebookInitProvider: java.lang.ClassNotFoundException:未找到类 路径为DexPathList[[zip]的“com.facebook.internal.FacebookInitProvider” 文件“/data/app/com.hellogold.app.

以前有人在Android版Facebook SDK中遇到过这个错误吗

java.lang.RuntimeException:无法获取提供程序 com.facebook.internal.FacebookInitProvider: java.lang.ClassNotFoundException:未找到类 路径为DexPathList[[zip]的“com.facebook.internal.FacebookInitProvider” 文件“/data/app/com.hellogold.app.dev-2/base.apk”]


下面的代码为我修复了我的多重索引问题。我从工程师博客上的一个小组那里得到了它们,我想我不记得原来的链接了,如果有人能找到它,请在评论中链接它,我将编辑我的答案,以反映我从他的博客文章中得到了我的解决方案

android.applicationVariants.all { variant ->
    task "fix${variant.name.capitalize()}MainDexClassList" << {
        logger.info "Fixing main dex keep file for $variant.name"
        File keepFile = new File("$buildDir/intermediates/multi-dex/$variant.buildType.name/maindexlist.txt")
        keepFile.withWriterAppend { w ->
            // Get a reader for the input file
            w.append('\n')
            new File("${projectDir}/multidex.keep").withReader { r ->
                // And write data from the input into the output
                w << r << '\n'
            }
            logger.info "Updated main dex keep file for ${keepFile.getAbsolutePath()}\n$keepFile.text"
        }
    }
}
tasks.whenTaskAdded { task ->
    android.applicationVariants.all { variant ->
        if (task.name == "create${variant.name.capitalize()}MainDexClassList") {
            task.finalizedBy "fix${variant.name.capitalize()}MainDexClassList"
        }
    }
}
android.applicationVariants.all{variant->
任务“修复${variant.name.capitalize()}MainDexClassList”
//获取输入文件的读取器
w、 追加('\n')
新文件(${projectDir}/multidex.keep”)。带读取器{r->
//并将数据从输入写入输出
W
if(task.name==“create${variant.name.capitalize()}MainDexClassList”){
task.finalizedBy“fix${variant.name.capitalize()}MainDexClassList”
}
}
}
因此,上述方法是有效的

编译DK25版
明斯克版本16
targetSdkVersion 25
启用多索引为真


我在应用程序的gradle中声明了它,而不是主gradle。

我也遇到了同样的问题,因为我在app.onCreate中调用了MultiDex.install,移动到app.attachBaseContext()解决了问题。因为提供的安装在App.onCreate.

之前启动。这是您的第一次安装吗?还是在更改SDK后出现此错误?这是后期安装,在此之前我没有遇到SDK问题。My bad@MohammedAtif,这是我的第一次安装。您是否在清单文件中添加了提供程序详细信息?是否是指元数据吗?像这样?如果是,我添加了这个。如果不是,你需要告诉我还有什么要添加的,因为他们的说明没有包含任何提供者详细信息部分。你能澄清一下你把第一块代码放在哪里吗?@Ethanfisher在你声明存储库和应用插件之后