【问题标题】:Android app error java.lang.NoClassDefFoundError when using firebase使用firebase时Android应用程序错误java.lang.NoClassDefFoundError
【发布时间】:2017-08-13 17:26:31
【问题描述】:

我有一个使用 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'
}

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

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    有几种方法可以纠正它。

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

    【讨论】:

      【解决方案2】:

      您使用的是非常旧版本的库,请全部更新,不要使用测试版。此外,如果您不使用 gms:play-services 功能,请将其删除。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-18
        • 2017-01-14
        • 1970-01-01
        • 2016-01-19
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        相关资源
        最近更新 更多