前に、私のプログラムはうまく動作します。しかし、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)
私はすでに他の質問を見ましたが、問題は同じではありません。私は何を間違えていますか?助けてください
アプリモジュール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);
}
}
詳細については、こちらをご覧ください リンク 。
64K以上のメソッドに問題があるようで、build.gradle(アプリモジュール)の_multiDexEnabled true
_で解決しようとしたようです。ただし、以下を追加する必要があります。
追加:build.gradleの依存関係にある_compile 'com.Android.support:multidex:1.0.0'
_
ApplicationクラスをMultiDexApplicationに拡張します。 ApplicationクラスのonCreated
メソッドにMultiDex.install(this);
を追加します。
問題を解決する必要があります
参照リンク: https://developer.Android.com/studio/build/multidex.html
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>
マニフェストに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>
google Play Servicesの依存関係を含める場合は、削除します。これを使用するたびにこのエラーを修正できます。 Googleマップまたはその他の特定のGoogleサービスを使用している場合は、その特定のサービスの依存関係のみを含めます。また、google playサービスの依存関係のバージョンを確認してください。
私は同じエラーを受け取り、それを使用して解決しました:
同じエラーが発生しました。私はそれを解決しました:
1)build.graldeから不要なパッケージを削除します。
2)Firebaseプラグインを無効にする
3)ビルドツールを最新にアップグレードする
Manifest.xmlに次の行を追加します
<application
Android:name="Android.support.multidex.MultiDexApplication"
このsnアプリレベルbuild.gradleファイルを追加します
defaultConfig {
multiDexEnabled true
}
......
dependencies {
compile 'com.Android.support:multidex:1.0.1'
}
これらのすべてのソリューションを試した後、私のために動作する簡単なソリューションは、outputsproject\app\build \の下のフォルダーを削除し、プロジェクトを再構築すると実行状態になります。