java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

我在我的谷歌开发者控制台上得到这个奇怪的错误。 所以我用谷歌云testing实验室来看看真的发生了什么。 事实certificate,我的应用程序几乎在所有设备上都失败了

FATAL EXCEPTION: main Process: com.blackcurrantapps.iamin, PID: 16706 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) 

这是testing的截图。 在这里输入图像说明

现在,这是有趣的部分, 我甚至不使用我的应用程序中的Firebase 。 当我在整个应用程序中查找path时,没有提到“Firebase”这个词。 我尽pipe使用谷歌云服务,login和谷歌应用程序引擎。

这是我的build.gradle文件:

 buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { applicationId "com.blackcurrantapps.iamin" minSdkVersion 16 targetSdkVersion 23 versionCode 11 versionName "Fixed Check in Bug" multiDexEnabled = true } buildTypes { release { shrinkResources true // minifyEnabled true // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } dexOptions { javaMaxHeapSize "4g" } } repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/groups/public/" } maven { url "https://jitpack.io" } maven { url 'https://maven.fabric.io/public' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile('com.mikepenz:materialdrawer:4.5.8@aar') { transitive = true } compile 'com.mikepenz:google-material-typeface:1.2.0.1@aar' //Google Material Design Icons compile 'com.mikepenz:fontawesome-typeface:4.4.0.1@aar' compile('com.vincentbrison.openlibraries.android:dualcache:2.2.2@jar') { transitive = true; } compile project(':htmlDialog') compile('com.twitter.sdk.android:twitter:1.8.0@aar') { transitive = true; } compile 'com.android.support:palette-v7:23.4.0' compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.google.android.gms:play-services-maps:9.0.0' compile 'com.google.android.gms:play-services-gcm:9.0.0' compile 'com.google.android.gms:play-services-identity:9.0.0' compile 'com.google.android.gms:play-services-base:9.0.0' compile 'com.google.android.gms:play-services-plus:9.0.0' compile 'com.google.android.gms:play-services-analytics:9.0.0' compile 'com.google.android.gms:play-services-location:9.0.0' compile 'com.android.support:cardview-v7:23.4.0' compile 'com.rengwuxian.materialedittext:library:2.1.3' compile 'com.twotoasters.jazzylistview:library:1.2.1' compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1' compile 'com.pnikosis:materialish-progress:1.7' compile 'com.getbase:floatingactionbutton:1.10.1' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.okhttp:okhttp:2.6.0' compile 'me.dm7.barcodescanner:zbar:1.8.3' compile 'net.glxn.qrgen:android:2.0' compile 'com.edmodo:cropper:1.0.1' compile 'com.github.PhilJay:MPAndroidChart:v2.1.6' compile 'de.greenrobot:eventbus:2.4.0' compile 'com.android.support:support-v4:23.4.0' compile 'com.pavelsikun:material-seekbar-preference:0.12.1+' compile project(path: ':backend', configuration: 'android-endpoints') } 

有人可以帮我从这里出去吗 ?

  • 适用于Android的Google Analytics(分析):没有看到“受众特征和兴趣”报告
  • 如何使用Google Play Services 6.5粒度依存关系pipe理
  • Android:Google Play服务中的Google Analytics可用性?
  • <您的应用>在使用Google Play服务时遇到问题 - 使用GoogleApiClient时,它总是触发onConnectionFailed
  • 将Google Play中的Android应用转换为Samsung Store
  • AppInvites“安装”链接不会打开应用程序
  • 带有AdMob的Google Play服务。 检查可用性?
  • SecurityException:绑定器调用到已签名的APK上不正确的接口
  • 感谢您发布问题Sanket。 我是Firebasetesting实验室(原云testing实验室)的PM。 想要让你知道,这是我们现在应该修复的错误。

    看来您的应用目前正在使用最新最好的Google Play服务。 我们更新了我们的设备,以便在上周使用它们,然后我们发现了一个使我们恢复到旧版本的错误。 现在,我们在我们的设备上重新部署了最新的Play服务,因此重新运行您的testing应该可以正常工作。 如果没有,请让我知道,我们会调查并修复它。

    我find了一个适合我的解决scheme。 我正在导入整个谷歌播放服务9.0.1库。 临时解决方法是只导入您的应用程序实际需要的API。 你可以在这里获得所有的API列表。

    与我的情况:使用FCM和谷歌地图

     //for FCM compile 'com.google.firebase:firebase-messaging:9.4.0' //for Map compile 'com.google.android.gms:play-services:9.4.0' 

    我已经修复:删除

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

    和使用

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

    它工作正常。

    如果这可以帮助其他我解决这个使用这个,虽然这是无处与Firebase链接,但它实际上解决了我的崩溃

    1. compile 'com.android.support:multidex:1.0.1'添加到app / build.gradle。

    2. android:name="android.support.multidex.MultiDexApplication"添加到AndroidManifest.xml中的应用程序标签。

    3. 如果您正在使用自定义应用程序类,请跳过AndroidManifest.xml并使您的Application类扩展MultiDexApplication而不是Application。

    您必须在Android依赖项上使用com.google.firebase:firebase-ads:9.0.2 AdMob,

     compile 'com.google.firebase:firebase-ads:9.0.2' 

    并删除你的

     play-services (com.google.android.gms: play-services:9.0.2) 

    这个对我有用!

    你会尝试下面的代码片段:

     defaultConfig { multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' } public class Controller extends Application { @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); MultiDex.install(this); } } 

    只需降级谷歌播放服务依赖项compile 'com.google.android.gms:play-services:8.3.0' ,问题就解决了。

    我希望现在还不迟。 Firebase造成了麻烦,所以我排除了它。 我刚刚在模块gradle上添加了这个:

     configurations { all*.exclude group: 'com.google.firebase', module: 'firebase-common' } 

    原来我的MultiDex使用是错误的,并导致此错误。 这应该在官方文档中真正提到的地方。


    如何正确地做到这一点:

    在Gradle.build(应用程序级别)

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

    在清单中,添加

     <application android:name=".Global" ... 

    在Application类中,

     public class Global extends MultiDexApplication { ... } 

    在Android 4.4中,solucion与此类似( https://stackoverflow.com/a/38707231/3377472 ):

    – 我有Google Play服务修订版本33

    1)configurationbuild.gradle和依赖项

    启用multidex支持并添加multidex库

      android { compileSdkVersion 23 buildToolsVersion '23.0.3' defaultConfig { applicationId "packagename" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" //------- Enabling multidex support----------. multiDexEnabled true } dexOptions { javaMaxHeapSize "3g"//use 3Gb of ram to launch android } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile 'com.android.support:multidex:1.0.1' // 1.0.0 // if you are using google maps compile 'com.google.android.gms:play-services-maps:9.2.0' compile 'com.google.android.gms:play-services-location:9.2.0' } 

    2)编辑清单,并添加这个android:名称

     <application android:name="android.support.multidex.MultiDexApplication" ... ..... activity android:name="packagename.Application" .... ... </activity> 

    3)应用程序类

    我的应用程序类是:

     import android.support.multidex.MultiDex; public class Application extends AppCompatActivity { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //this is the solution MultiDex.install(this); setContentView(R.layout.layout_example); ---- ---- 

    不知道这是否有帮助,但我有使用Android SDK 19相同的问题,这是让我疯了。 我不使用Firebase(至less不是有目的的)我不知道为什么,但是当我在gradleconfiguration中设置“minifyEnabled true”时,错误停止了。

    我看到你的发行版中有你的注释。

    如果您使用的是谷歌播放服务,请确保您添加特定的服务。 例如,当使用地图时:

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

    代替

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

    这将减less代码的大小,编译将不需要使用“multidex”function。 如果碰巧你已经包括在内

     { multiDexEnabled true } 

    在你的代码中尝试删除它和不必要的库引用