Android NoClassDefFoundError:com.google.firebase.FirebaseOptions

时间:2016-05-31 00:27:53

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

当我运行我的代码时,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)

idont使用任何firebase应用程序,但我收到此错误。所以我尝试在互联网上找到的somany tecnique。但注意到变化。

你可以帮帮我吗

5 个答案:

答案 0 :(得分:4)

首先更新您的sdk中的Google Repository 第二次启用multidex,如

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' 

答案 1 :(得分:3)

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

请按照以下步骤操作:

  1. 转到Android SDK Manager
  2. 转到额外
  3. enter image description here

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

    如果你在你的应用程序中使用MultiDex ,那么请在必须使用它时使用它。

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

    App level 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);
        }
    
    }
    

答案 2 :(得分:1)

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

答案 3 :(得分:0)

1,打开SDK Manager,然后安装 Google Play服务(第30版) Google存储库(第26版)

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

答案 4 :(得分:0)

您应该将Multidex库包含在gradle.build

WebMail.Send

根据@Lollipop的建议,您需要下载Google Play服务并在项目中添加classpath。由于Firebase需要此库才能正常工作。

修改

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