2017-03-01 93 views
3

有沒有人在使用Facebook SDK for Android之前遇到過此錯誤?Facebook SDK Android,java.lang.RuntimeException:無法獲取提供者com.facebook.internal.FacebookInitProvider

了java.lang.RuntimeException:無法獲取提供商 com.facebook.internal.FacebookInitProvider: 拋出java.lang.ClassNotFoundException:未找到路徑類 「com.facebook.internal.FacebookInitProvider」: DexPathList [[郵編 文件 「/data/app/com.hellogold.app.dev-2/base.apk」]

+1

這是您第一次設置?或者在對SDK進行更改後出現此錯誤? –

+1

這是後期設置,我在此之前沒有SDK問題。 – kaizenx

+0

我的壞@MohammedAtif,這是我第一次安裝。 – kaizenx

回答

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產出。

+0

你能澄清你把第一塊代碼放在哪裏嗎? –

+0

@EthanFischer聲明存儲庫並應用插件後 – kaizenx

0

我有同樣的問題,因爲我在App.onCreate調用MultiDex.install,移動到App.attachBaseContext()解決了這個問題。因爲提供安裝在App.onCreate之前啓動。

相關問題