web-dev-qa-db-ja.com

クラス「com.google.firebase.provider.FirebaseInitProvider」が見つかりませんでした

前に、私のプログラムはうまく動作します。しかし、Android studioを最新バージョン(16年9月15日に構築された2.2)に更新したばかりのとき、次のエラーが発生しています。しかし、プログラムを実行すると次のエラーが表示されます。

E/AndroidRuntime:致命的な例外:メインプロセス:com.example.androidtutorial、PID:28293 Java.lang.RuntimeException:プロバイダーを取得できませんcom.google.firebase.provider.FirebaseInitProvider:Java.lang.ClassNotFoundException:クラスが見つかりませんでしたパス上の「com.google.firebase.provider.FirebaseInitProvider」:DexPathList [[Zip file "/data/app/com.example.androidtutorial-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example .androidtutorial-2/lib/x86、/ system/lib、/ vendor/lib]] Android.app.ActivityThread.installProvider(ActivityThread.Java:5814)at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:5403) Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:5342)at Android.app.ActivityThread.-wrap2(ActivityThread.Java)at Android.app.ActivityThread $ H.handleMessage(ActivityThread.Java:1528)at Android.os .Handler.dispatchMessage(Handler.Java:102)at Android.os.Looper.loop(Looper.Java:154)at Android.app.ActivityThread.main(ActivityThread.Java:6077) Java.lang.reflect.Method.invoke(Native Method)at com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:865)at com.Android.internal.os.ZygoteInit.main(ZygoteInit。 Java:755)原因:Java.lang.ClassNotFoundException:パス上のクラス "com.google.firebase.provider.FirebaseInitProvider"が見つかりませんでした:DexPathList [[Zip file "/data/app/com.example.androidtutorial-2 /base.apk"],nativeLibraryDirectories=[/data/app/com.example.androidtutorial-2/lib/x86、/ system/lib、/ vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java :56)Java.lang.ClassLoader.loadClass(ClassLoader.Java:380)at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)at Android.app.ActivityThread.installProvider(ActivityThread.Java:5799)at Android .app.ActivityThread.installContentProviders(ActivityThread.Java:5403)Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:5342)Android.app.ActivityThread.-wrap2(ActivityThread.Java)Android.app.ActiviでtyThread $ H.handleMessage(ActivityThread.Java:1528)Android.os.Handler.dispatchMessage(Handler.Java:102)Android.os.Looper.loop(Looper.Java:154)Android.app.ActivityThread.main (ActivityThread.Java:6077)Java.lang.reflect.Method.invoke(Native Method)com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:865)com.Android.internal.os .ZygoteInit.main(ZygoteInit.Java:755)

私はすでに他の質問を見ましたが、問題は同じではありません。私は何を間違えていますか?助けてください

11
TSR

アプリモジュールbuild.gradle

Android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  compile 'com.Android.support:multidex:1.0.1'
}

AndroidManifest.xmlで名前を変更

<application
   ....
  Android:name=".MyApplication">

 // ...
</application>

クレートMyApplication.Javaファイル

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

}

詳細については、こちらをご覧ください リンク

16
Garg's

64K以上のメソッドに問題があるようで、build.gradle(アプリモジュール)の_multiDexEnabled true_で解決しようとしたようです。ただし、以下を追加する必要があります。

  1. 追加:build.gradleの依存関係にある_compile 'com.Android.support:multidex:1.0.0'_

  2. ApplicationクラスをMultiDexApplicationに拡張します。 ApplicationクラスのonCreatedメソッドにMultiDex.install(this);を追加します。

問題を解決する必要があります

参照リンク: https://developer.Android.com/studio/build/multidex.html

10
Chi Minh Trinh

app => build.gradle

Android {
.....
defaultConfig {
......
 multiDexEnabled true//add this line
}
......
dependencies{
 compile 'com.Android.support:multidex:1.0.1'//add this line
}

マニフェスト内

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
....
<application
....
 Android:name="Android.support.multidex.MultiDexApplication" 
...>
 <activity   />
...

</application>

</manifest>
2

マニフェストにmultidexサポートを追加すると、これは非常にうまく機能します。問題が発生するたびに、64K以上でこの方法で修正しました。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.myapp">
    <application
            Android:name="Android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>
2
ProgrammerCk

google Play Servicesの依存関係を含める場合は、削除します。これを使用するたびにこのエラーを修正できます。 Googleマップまたはその他の特定のGoogleサービスを使用している場合は、その特定のサービスの依存関係のみを含めます。また、google playサービスの依存関係のバージョンを確認してください。

2
akitsme

私は同じエラーを受け取り、それを使用して解決しました:

  1. プロジェクトをクリーン/リビルドします。
  2. 再起動Android Studio。
  3. すべてのSDKツールとAndroid Studio。
  4. デバイス上のキャッシュとデータをクリアします。
0
Vaibhav Jain

同じエラーが発生しました。私はそれを解決しました:

1)build.graldeから不要なパッケージを削除します。

2)Firebaseプラグインを無効にする

3)ビルドツールを最新にアップグレードする

0
user6889641

Manifest.xmlに次の行を追加します

 <application
    Android:name="Android.support.multidex.MultiDexApplication"

このsnアプリレベルbuild.gradleファイルを追加します

 defaultConfig {
    multiDexEnabled true
} 
      ......

dependencies {
compile 'com.Android.support:multidex:1.0.1'
}
0

これらのすべてのソリューションを試した後、私のために動作する簡単なソリューションは、outputsproject\app\build \の下のフォルダーを削除し、プロジェクトを再構築すると実行状態になります。

0
Zubair Akber