使用firebase时,Android应用程序错误java.lang.NoClassDefFoundError

时间:2017-08-13 17:26:32

标签: java android

我有一个使用firebase来展示广告的应用。问题是有些设备(似乎只是Android 4.4设备)崩溃了。这是崩溃报告:

java.lang.NoClassDefFoundError: 
  at com.google.firebase.FirebaseApp.initializeApp (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:5035)
  at android.app.ActivityThread.installContentProviders (ActivityThread.java:4627)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4567)
  at android.app.ActivityThread.access$1800 (ActivityThread.java:138)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1299)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:136)
  at android.app.ActivityThread.main (ActivityThread.java:5262)
  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:851)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:667)
  at dalvik.system.NativeStart.main (Native Method)

我猜错误可能与某些依赖项的版本有关。

此处在顶级gradle中的依赖关系:

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.3'
    classpath 'com.google.gms:google-services:1.3.0-beta1'
}

我的应用程序是gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.google.firebase:firebase-ads:9.4.0'
    compile 'com.google.android.gms:play-services:9.6.0'
}

任何提示都会有所帮助!提前谢谢!

2 个答案:

答案 0 :(得分:0)

这可能是原因:1.Java虚拟机无法在运行时找到在编译时可用的特定类。 2.如果在编译期间存在类,但在运行时期间在java类路径中不可用。

有几种方法可以纠正它。

如果是maven项目,那么在你的pom.xml中添加jar依赖项: 否则将jar添加到项目lib文件夹, 将jar添加到构建配置的类路径

答案 1 :(得分:0)

您使用的是旧版本的库,更新它们并且不使用测试版。此外,如果您不使用gms:播放服务功能,请将其删除。