Android NoClassDefFoundError:com.google.firebase.FirebaseOptions

Posted

技术标签:

【中文标题】Android NoClassDefFoundError:com.google.firebase.FirebaseOptions【英文标题】:Android 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 应用程序,但我收到此错误。所以我尝试了一些在互联网上找到的技术。但注意到变化。

你能帮帮我吗

【问题讨论】:

【参考方案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()' @çağrıGündüz 在这里阅读 ***.com/a/26851467/4824159 和 ***.com/a/27735956/4824159 尝试编译'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 服务。

按照以下步骤操作:

    转到 Android SDK 管理器 转至额外

并将其更新到版本 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' ' 下添加类路径

以上是关于Android NoClassDefFoundError:com.google.firebase.FirebaseOptions的主要内容,如果未能解决你的问题,请参考以下文章

selenium-网站demo学习- java.lang.IllegalAccessError ,java.lang.NoClassDefFoundError,还有没找到driver的

带命名空间的XML的dom4j应用<转>

Android逆向系列文章— Android基础逆向

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本