没有找到"com.google.firebase.provider.FirebaseInitProvider"类

TSR*_*TSR 11 java error-handling android compiler-errors android-studio

以前,我的程序运行良好.但是当我刚刚将我的Android工作室更新到最新版本(基于15-sept-16构建的2.2)时,我遇到以下错误.当我构建它时,它说:内置成功,但是当我运行程序时会出现此错误:

E/AndroidRuntime:FATAL EXCEPTION:main进程:com.example.androidtutorial,PID:28293 java.lang.RuntimeException:无法获取提供者com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:未找到类路径上的"com.google.firebase.provider.FirebaseInitProvider":DexPathList [[zip文件"/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.app.ActivityThread.main的android.os.Looper.loop(Looper.java:154)(ActivityThread.java:6077)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)的com.android.internal.os.ZygoteInit.main(ZygoteInit.)中的java.lang.reflect.Method.invoke(Native Method). java:755)引起:java.lang.ClassNotFoundException:在路径上找不到类"com.google.firebase.provider.FirebaseInitProvider":DexPathList [[zip file"/data/app/com.example.androidtutorial-2 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java)中的/base.apk"],nativeLibraryDirectories=[/data/app/com.example.androidtutorial-2/lib/x86,/ system/lib,/ vendor/lib]] :56)在java.lang.ClassLoader.loadClass(ClassLoader.java:380)java.lang.ClassLoader.loadClass(ClassLoader.java:312)at android.app.ActivityThread.installProvider(ActivityThread.java:5799)at android android.app.A活动中的android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342)上的.app.ActivityThread.installContentProviders(ActivityThread.java:5403)位于android.app.ActivityThre的android.app.ActivityThread.-wrap2(ActivityThread.java)ad.H.handleMessage(ActivityThread.java:1528)位于android.app.A.运行时,Android.A.Ra上运行android.os.Handler.Mopage(Handler.java:102),位于android.app.ActivityThread.main的android.os.Looper.loop(Looper.java:154) (ActivityThread.java:6077)位于com.android.internal.os的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)的java.lang.reflect.Method.invoke(Native Method) .ZygoteInit.main(ZygoteInit.java:755)

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

Gar*_*g's 16

在app模块build.gradle中

android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  compile 'com.android.support:multidex:1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中更改名称

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

 // ...
</application>
Run Code Online (Sandbox Code Playgroud)

创建一个MyApplication.java文件

public class MyApplication extends Application {

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

}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此链接.


Chi*_*inh 10

看来你有超过64K方法的问题,然后尝试multiDexEnabled true在build.gradle(app模块)中解决它.但是你需要添加以下内容:

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

  2. 将Application类扩展为MultiDexApplication.添加MultiDex.install(this);onCreated应用程序类的方法.

你的问题应该得到解决

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


小智 0

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

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

2)禁用Firebase插件

3)升级构建工具到最新