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

kai*_*enx 5 android facebook

有没有人在使用 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"]

kai*_*enx 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"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以上面的工作适用于

compileSdkVersion 25 minSdkVersion 16 targetSdkVersion 25 multiDexEnabled true

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