首页 文章

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

提问于
浏览
3

有没有人在使用Facebook SDK for Android之前遇到此错误?

java.lang.RuntimeException:无法获取提供者com.facebook.internal.FacebookInitProvider:java.lang.ClassNotFoundException:未在路径上找到类“com.facebook.internal.FacebookInitProvider”:DexPathList [[zip file“/ data /app/com.hellogold.app.dev-2/base.apk“]

2 回答

  • 1

    我有同样的问题,因为我在App.onCreate中调用MultiDex.install,移动到App.attachBaseContext()解决了问题 . 因为在App.onCreate之前提供安装启动 .

  • 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 .

相关问题