【问题标题】:.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList.ClassNotFoundException:在路径上找不到类“com.google.firebase.provider.FirebaseInitProvider”:DexPathList
【发布时间】:2017-10-21 01:13:23
【问题描述】:

当我将我的应用程序分享给其他人时,我的应用程序崩溃了,但是当我直接从工作室运行我的应用程序时,应用程序运行正常,但我已经看到了所有解决方案,但对我没有任何效果。

java.lang.RuntimeException: 无法获取提供者 com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException:找不到类 路径上的“com.google.firebase.provider.FirebaseInitProvider”: DexPathList[[压缩文件 "/data/app/com.example.amit.workoutdocent-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.amit.workoutdocent-1/lib/arm, /vendor/lib, /system/lib]] 在 android.app.ActivityThread.installProvider(ActivityThread.java:6948) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:6540) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:6480) 在 android.app.ActivityThread.access$1800(ActivityThread.java:230) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:7409) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 引起:java.lang.ClassNotFoundException:找不到类 路径上的“com.google.firebase.provider.FirebaseInitProvider”: DexPathList[[压缩文件 "/data/app/com.example.amit.workoutdocent-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.amit.workoutdocent-1/lib/arm, /vendor/lib, /system/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:511) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:469) 在 android.app.ActivityThread.installProvider(ActivityThread.java:6933) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:6540) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:6480) 在 android.app.ActivityThread.access$1800(ActivityThread.java:230) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:7409) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

【问题讨论】:

    标签: android


    【解决方案1】:

    如果你的 minSdkVersion 设置为 20 或更低,那么你必须使用 multidex 支持库:

    module-level.gradle ---

    android {
    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
    }
    
    dependencies {
     compile 'com.android.support:multidex:1.0.1'
    }
    

    在你的应用程序类中

    public class MyApplication extends SomeOtherApplication {
    @Override
    protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
    }
    }
    

    【讨论】:

    • 太棒了!我的MultiDex.install(this);onCreate(),移动到attachBaseContext(),应用就像魅力一样工作
    【解决方案2】:

    在 build.gradle 文件中将我的 gradle 版本从 2.3.3 降低到 2.3.0,清理并构建项目。现在工作正常。

    【讨论】:

      【解决方案3】:

      通过在 Android Studio 中禁用 Instant Run 来解决此问题

      设置 → 构建、执行、部署 → 即时运行并取消选中启用即时运行

      【讨论】:

        【解决方案4】:

        确保您的 build.gradle 中的 google play 服务和 Firebase 依赖项的版本相同。然后,在 Android Studio 中使用无效缓存和重启选项

        【讨论】:

          猜你喜欢
          • 2015-07-01
          • 1970-01-01
          • 2018-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多