【问题标题】:Didn't find class "com.google.firebase.provider.FirebaseInitProvider"找不到类“com.google.firebase.provider.FirebaseInitProvider”
【发布时间】:2017-02-10 06:34:14
【问题描述】:

之前,我的程序运行良好。但是当我刚刚将我的 Android 工作室更新到最新版本(2.2 年 16 月 15 日构建)时,我遇到了以下错误。当我构建它时,它说:构建成功,但是当我运行我的程序时出现此错误:

E/AndroidRuntime:致命异常:主进程:com.example.androidtutorial,PID:28293 java.lang.RuntimeException:无法获取提供者 com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException:找不到类 路径上的“com.google.firebase.provider.FirebaseInitProvider”: DexPathList[[压缩文件 "/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) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:5403) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342) 在 android.app.ActivityThread.-wrap2(ActivityThread.java) 在 android.app.ActivityThread$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(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 引起:java.lang.ClassNotFoundException:找不到类 路径上的“com.google.firebase.provider.FirebaseInitProvider”: DexPathList[[压缩文件 "/data/app/com.example.androidtutorial-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.androidtutorial-2/lib/x86, /system/lib, /vendor/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:380) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:312) 在 android.app.ActivityThread.installProvider(ActivityThread.java:5799) 在 android.app.ActivityThread.installContentProviders(ActivityThread.java:5403) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342) 在 android.app.ActivityThread.-wrap2(ActivityThread.java) 在 android.app.ActivityThread$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(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我已经看过其他问题,但问题不一样。 我究竟做错了什么?请帮忙

【问题讨论】:

标签: java android android-studio error-handling compiler-errors


【解决方案1】:

在应用模块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);
    }

}

更多详情可以查看link

【讨论】:

    【解决方案2】:

    您似乎对 Over 64K Methods 有问题,然后尝试在 build.gradle(应用程序模块)中使用 multiDexEnabled true 解决它。但是你需要添加更多:

    1. 在 build.gradle 的依赖项中添加:compile 'com.android.support:multidex:1.0.0'

    2. 将您的应用程序类扩展到 MultiDexApplication。并在Application类的onCreated方法中添加MultiDex.install(this);

    您的问题应该得到解决

    参考链接:https://developer.android.com/studio/build/multidex.html

    【讨论】:

      【解决方案3】:

      这很有效,您可以在清单中添加多索引支持,当我遇到问题时,我会以这种方式修复超过 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>
      

      【讨论】:

        【解决方案4】:

        如果您包含它,只需删除 google play 服务依赖项。每次使用它我都能修复这个错误。如果您使用的是谷歌地图或任何其他特定的谷歌服务,则仅包含该特定服务的依赖项。也尝试检查 google play 服务依赖的版本。

        【讨论】:

          【解决方案5】:

          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>
          

          【讨论】:

            【解决方案6】:

            我遇到了同样的错误。我通过以下方式解决了它:

            1) 删除 build.grade 中不必要的包。

            2) 禁用 Firebase 插件

            3) 将构建工具升级到最新版本

            【讨论】:

              【解决方案7】:

              我遇到了同样的错误并使用以下方法解决了它:

              1. 清理/重建您的项目。
              2. 重启 Android Studio。
              3. 更新所有 SDK 工具和 Android Studio。
              4. 清除缓存并清除设备上的数据。

              【讨论】:

                【解决方案8】:

                在尝试所有这些解决方案后对我有用的一个简单解决方案是删除 project\app\build\ 下的 outputs 文件夹,然后重建项目将让它运行状态。

                【讨论】:

                  【解决方案9】:

                  将以下行添加到 Manifest.xml

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

                  添加这个 sn App 级 build.gradle 文件

                   defaultConfig {
                      multiDexEnabled true
                  } 
                        ......
                  
                  dependencies {
                  compile 'com.android.support:multidex:1.0.1'
                  }
                  

                  【讨论】:

                    猜你喜欢
                    • 2017-02-11
                    • 1970-01-01
                    • 2017-10-21
                    • 1970-01-01
                    • 2019-01-24
                    • 2020-10-15
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多