有没有人在使用Facebook SDK for Android之前遇到此错误?
java.lang.RuntimeException:无法获取提供者 com.facebook.internal.FacebookInitProvider: java.lang.ClassNotFoundException:没找到类 " com.facebook.internal.FacebookInitProvider"在路径上:DexPathList [[zip 文件" /data/app/com.hellogold.app.dev-2/base.apk"]
答案 0 :(得分:1)
我遇到了同样的问题,因为我在App.onCreate中调用了MultiDex.install,转移到App.attachBaseContext()解决了这个问题。因为在App.onCreate之前提供安装。
答案 1 :(得分:0)
以下代码为我修复了我的multidex问题。我从工程师的博客文章中找到了他们,以为我记不起原来的链接,如果有人能找到它,请在评论中链接它,我会编辑我的答案,以反映我从他的博客帖子中得到了我的解决方案
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"
}
}
}
因此上述工作适用于
compileSdkVersion 25
minSdkVersion 16
targetSdkVersion 25
multiDexEnabled true
我在应用程序的gradle中声明了它,而不是主要的gradle。