【问题标题】:Android NoClassDefFoundError: com.google.firebase.FirebaseOptionsAndroid NoClassDefFoundError:com.google.firebase.FirebaseOptions
【发布时间】:2016-09-28 20:13:47
【问题描述】:

当我运行我的代码时,Adroid studio 给出了这个错误

我的 gradle 文件如下所示,Android Studio v2.2 gradle 是 'com.android.tools.build:gradle:2.2.0-alpha1'

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    packagingOptions {

        exclude 'META-INF/DEPENDENCIES'
    }

    defaultConfig {
        applicationId "com.asd.asd"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 9
        versionName "1.3.4"
        multiDexEnabled true
    }

    buildTypes {
        release {
            debuggable false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    dexOptions {

        javaMaxHeapSize "4g"
        jumboMode true
        preDexLibraries false
    }
}

    dependencies {
        compile project(':mPChartLib')
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.1.1'
        compile 'com.google.code.gson:gson:2.3.1'
        compile files('libs/commons-httpclient-3.1.jar')
        compile files('libs/signpost-commonshttp4-1.2.1.2.jar')
        compile files('libs/signpost-core-1.2.1.2.jar')
        compile files('libs/pushwoosh-4.0.4.jar')
        compile files('libs/httpcore-4.4.4.jar')
        compile files('libs/httpclient-4.5.2.jar')
        compile 'com.google.android.gms:play-services:9.0.0'



    }


05-30 20:41:50.785 14551-14551/com.asd.asd/AndroidRuntime: FATAL EXCEPTION: main                                                                     Process: com.asd.asd, PID: 14551
                                                                         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:1638)
                                                                             at android.content.ContentProvider.attachInfo(ContentProvider.java:1609)
                                                                             at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                             at android.app.ActivityThread.installProvider(ActivityThread.java:5008)
                                                                             at android.app.ActivityThread.installContentProviders(ActivityThread.java:4582)
                                                                             at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4522)
                                                                             at android.app.ActivityThread.access$1500(ActivityThread.java:151)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:110)
                                                                             at android.os.Looper.loop(Looper.java:193)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5292)
                                                                             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:824)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
                                                                             at dalvik.system.NativeStart.main(Native Method)

不使用任何 firebase 应用程序,但我收到此错误。所以我尝试了一些在互联网上找到的技术。但注意到变化。

你能帮帮我吗

【问题讨论】:

    标签: android android-studio gradle firebase android-gradle-plugin


    【解决方案1】:

    首先在您的 sdk 中更新您的 Google Repository 第二个启用multidexlike

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    

    编译

    compile 'com.android.support:multidex:1.0.1'
    classpath 'com.google.gms:google-services:3.0.0' 
    

    【讨论】:

    • 当我添加类路径 'com.google.gms:google-services:3.0.0' 。我收到一个错误 Gradle sync failed: Gradle DSL method not found: 'classpath()'
    • 尝试编译'com.google.android.gms:play-services:9.0.+'
    • İt 工作但现在我在程序启动时收到此错误 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions at com.google.firebase.FirebaseApp.zzbu(Unknown Source) at com。 google.firebase.provider.FirebaseInitProvider.onCreate(未知来源)
    • 您使用了哪个 AS 版本,并在您的 as sdk 中更新您的所有 google 存储库
    【解决方案2】:

    此错误在较新的版本中报告,主要围绕修订版 28,29 并在较新的 Play 服务版本中得到解决,因此如果您遇到此问题,请首先确保您的 Android 工作室中已更新版本的 Google Play 服务。

    按照以下步骤操作:

    1. 转到 Android SDK 管理器
    2. 转至额外

    并将其更新到版本 30 或更高版本。

    那么如果您在应用程序中使用 MultiDex,那么请仅在强制使用时才使用它。

    确保在集成 MultiDex 时遵循这些步骤。

    在你应用级Build.Gradle

     defaultConfig {
            applicationId "com.reversebits.tapanhp.saffer"
            minSdkVersion 17
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            multiDexEnabled true
        }
    

    dependencies 中应用MultiDex 依赖

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        wearApp project(':wear')
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
        compile 'com.google.android.gms:play-services:9.4.0'
        compile 'com.android.support:multidex:1.0.1'
    }
    

    然后在您的 AndroidMenifest.xml 文件中确保 Application 标签的名称为 MultiDexApplication

    <application
            android:name="android.support.multidex.MultiDexApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
    

    注意

    如果您有自定义应用程序类并在清单文件中使用它,那么您可以在应用程序类中初始化 multidex,如下所示,

    public class AppClass extends Application {
        private static Context context;
        private static AppClass mInstance;
    
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    
    }
    

    【讨论】:

      【解决方案3】:

      在您的顶级 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'
      

      【讨论】:

        【解决方案4】:

        1,打开您的 SDK 管理器,然后安装 Google Play Services (rev 30)Google Repository (rev 26)

        2、将classpath 'com.google.gms:google-services:3.0.0'添加到你的build.gradle项目中。

        【讨论】:

          【解决方案5】:

          你应该在你的 gradle.build 中包含 Multidex 库

          compile 'com.android.support:multidex:1.0.1'
          

          正如@Lollipop 所建议的,您需要下载 Google play Services 并在您的项目中添加类路径。因为 Firebase 需要这个库才能正常工作。

          编辑

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

          【讨论】:

          • 当我添加类路径 'com.google.gms:google-services:3.0.0' 。我收到一个错误 Gradle sync failed: Gradle DSL method not found: 'classpath()'
          • 你应该在 gradle.build 文件中的 'buildscript { dependencies { classpath 'com.google.gms:google-services:3.0.0' } }' 下添加类路径
          猜你喜欢
          • 2016-10-02
          • 2016-12-14
          • 2017-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-06
          • 2015-08-12
          • 1970-01-01
          相关资源
          最近更新 更多