在更新到新的Firebase之后获取Exception java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

我已经更新我的应用程序使用这个新的firebase,现在当我编译我的项目,我得到以下异常。

这是我的logcat:

11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.dayshift_2.traveyy, PID: 27844 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions at com.google.firebase.FirebaseApp.zzbu(Unknown Source) at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1591) at android.content.ContentProvider.attachInfo(ContentProvider.java:1562) at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) at android.app.ActivityThread.installProvider(ActivityThread.java:4871) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406) at android.app.ActivityThread.access$1500(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5102) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) 

我的Build.gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.dayshift_2.traveyy" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE-FIREBASE.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0' compile 'com.facebook.android:facebook-android-sdk:4.+' compile 'com.google.android.gms:play-services:9.0.0' compile 'com.google.firebase:firebase-database:9.0.0' compile 'com.google.firebase:firebase-auth:9.0.0' compile 'com.android.support:support-v13:23.3.0' compile 'com.roughike:bottom-bar:1.2.1' } apply plugin: 'com.google.gms.google-services' 

不知道我从哪里得到这个例外。 任何帮助将不胜感激。 谢谢

    这对我工作:

    1. 如果您还没有,请从Android SDK Manager> Extras将您的“Google Play服务”更新为版本30。

    Android SDK管理器>附加功能> Google Play服务

    1. 然后将compile 'com.android.support:multidex:1.0.1'添加到您的依赖项(或者,如果不需要,只需删除multiDexEnabled true

    2. 将此属性添加到manifest中的应用程序标签: android:name="android.support.multidex.MultiDexApplication"
      如果您已经在Android Manifest中定义了自定义应用程序类,请从MultiDexApplication而不是Application扩展它

    希望它有帮助!

    使用最新的Google Play服务,但无法使用。 对我来说,这个过程正在工作:1.更新我的应用程序类:

     public class App extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 
    1. 更新的build.gradle文件:

      defaultConfig {…

       multiDexEnabled true 

      }

    包括依赖关系:

     dependencies { compile 'com.android.support:multidex:1.0.0' } 

    希望这会有所帮助。 谢谢

    修复球员非常简单。如果您在项目中使用player-services和firebase,请确保您不要在google中导入所有可用的服务。只需导入您实际需要的API。 例如:

      compile 'com.google.firebase:firebase-messaging:9.2.0' compile 'com.google.android.gms:play-services:9.2.0' 

    这样做可以给你noclassdeffounderrorTo要解决这个问题

    删除播放服务并同步您的项目。 如果您在应用中使用广告或地图等依赖项,请定义特定的API。 喜欢:

     compile 'com.google.android.gms:play-services-maps:9.2.0' 

    注意:最大不要尝试使用multiDexEnabled true 。 这应该是你解决问题的最后一步。

    希望这是有帮助的。

    降级了我的谷歌播放服务依赖关系

     compile 'com.google.android.gms:play-services:9.2.0' 

     compile 'com.google.android.gms:play-services:8.4.0' 

    这为我解决了这个问题。

    请参阅下面的堆栈溢出链接进一步描述 。

    请注意:升级到最新的谷歌播放服务
    compile 'com.google.android.gms:play-services:9.4.0'它也解决了这个问题。

    或者,您可以选择性地导入您需要的某些服务,而不是导入所有的Google Play服务。

    第一步:修复multidex

    应用程序类:

     public class StudyNApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } } 

    等级文件

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

    第2步:修复java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

    去掉

     compile 'com.google.android.gms:play-services:9.4.0' 

    添加两个lib:

     compile 'com.google.android.gms:play-services-maps:9.4.0' compile 'com.google.android.gms:play-services-location:9.4.0' 

    它工作正常。

    不要忘记它。

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

    我解决了这个问题,并降低了游戏服务依赖8.4.0编译'com.google.android.gms:play-services:8.4.0'

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

    并将以下内容添加到清单

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

    当我将目标SDK版本从22增加到23时,我遇到了同样的错误,我花了整整一天的时间来解决这个问题。 现在我终于找到了在你的build.gradle文件中使用不同的播放服务api的结果来源: https : //developers.google.com/android/guides/setup#add_google_play_services_to_your_project

    我只添加相关的Api和我的应用程序工作正常。

    我想我已经在这个答案中找到了解决这个问题的一个解决方案,请看一下,谢谢@Gabriele Mariotti ,他写道:

    在你的顶级build.gradle你必须添加:

     buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:3.0.0' } } 

    然后在你的模块build.gradle:

     apply plugin: 'com.android.application' android { // ... } dependencies { // ... } // ADD THIS AT THE BOTTOM apply plugin: 'com.google.gms.google-services' 
      GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(**R.string.default_web_client_id**)) .requestEmail() .build(); 

    在我的情况下,我改变了requestIdToken,它的工作。

     dependencies { compile 'com.android.support:support-v4:25.0.1' compile 'com.google.firebase:firebase-ads:9.0.2' compile files('libs/StartAppInApp-3.5.0.jar') compile 'com.android.support:multidex:1.0.1' } 

    应用插件: 'com.google.gms.google-services'

    build.gradle文件中降级你的依赖:

    从:

     compile 'com.google.android.gms:play-services:9.4.0' 

    至:

     compile 'com.google.android.gms:play-services:7.3.0' 

    这在我的情况下工作,希望你一样。

    试着解决…

    在Gradle文件中

    multiDexEnabled为true

    编译'com.android.support:multidex:1.0.1'

    清单文件

    应用程序标签添加这一行

    机器人:名字= “android.support.multidex.MultiDexApplication”