【问题标题】:Application crashed with NoSuchMethodError on startup while adding Firebase Library [duplicate]添加 Firebase 库时应用程序在启动时因 NoSuchMethodError 而崩溃 [重复]
【发布时间】:2017-10-25 21:14:58
【问题描述】:

应用程序启动时收到此错误,当我删除 firebase 编译库应用程序运行完美但我想同时使用库 firebase 和 googlePlay 服务时

05-25 14:02:43.525 22035-22035/? E/Zygote: MountEmulatedStorage()
05-25 14:02:43.525 22035-22035/? E/Zygote: v2
05-25 14:02:43.540 22035-22035/? E/SELinux: [DEBUG] get_category: variable 
seinfo: default sensitivity: NULL, cateogry: NULL
05-25 14:02:44.795 22035-22035/com.totalsoft.hajjapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   Process: com.totalsoft.hajjapp, PID: 22035
                                                                   java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.android.gms.common.internal.zzx' appears in /data/app/com.totalsoft.hajjapp-1/split_lib_dependencies_apk.apk:classes35.dex)
                                                                       at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source)
                                                                       at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
                                                                       at android.content.ContentProvider.attachInfo(ContentProvider.java:1716)
                                                                       at android.content.ContentProvider.attachInfo(ContentProvider.java:1685)
                                                                       at android.app.ActivityThread.installProvider(ActivityThread.java:5559)
                                                                       at android.app.ActivityThread.installContentProviders(ActivityThread.java:5154)
                                                                       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5094)
                                                                       at android.app.ActivityThread.access$1600(ActivityThread.java:177)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                       at android.os.Looper.loop(Looper.java:145)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5942)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

这是我的构建文件,我使用 googlePlay 服务添加了 firebase 依赖项

`apply plugin: 'com.google.gms.google-services'
  apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion '25.0.2'
useLibrary 'org.apache.http.legacy'

defaultConfig {
    applicationId "com.totalsoft.hajjapp"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 19
    versionName "8.7.5"
    multiDexEnabled true

}
dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
    lintOptions {
      warning "InvalidPackage"
}
    }

 dependencies {
compile project(':viewPagerIndicator')
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
//compile 'com.android.support:recyclerview-v7:24.2.0'
compile 'com.facebook.android:facebook-android-sdk:4.0.0'
compile 'com.koushikdutta.ion:ion:2.+'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.android.support:multidex:1.0.0'

compile 'com.google.firebase:firebase-appindexing:10.0.1'
compile files('libs/YouTubeAndroidPlayerApi.jar')
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.android.support:support-annotations:+'

////
compile "com.google.android.gms:play-services-base:8.4.0"
compile 'com.google.android.gms:play-services-maps:8.4.0'

compile 'com.splunk.mint:mint:5.0.0'
compile "com.google.android.gms:play-services:8.4.0"

 }

`

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
maven{
url "https://mint.splunk.com/gradle/"
   }
   }
dependencies {
    classpath 'com.android.tools.build:gradle:2.3.1'
    classpath 'com.google.gms:google-services:1.3.0-beta1'
    classpath 'com.android.tools.build:gradle:2.2.3'
}
}


 allprojects {
repositories {
    mavenCentral()
    jcenter()
    maven{
        url "https://mint.splunk.com/gradle/"
    }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

【问题讨论】:

  • 尝试不包括 google firebase library to proguard。
  • 我正在使用 android studio 我将为此做什么?
  • 为 playservices 和 firebase 保持相同的版本。类似问题stackoverflow.com/questions/38200664/…

标签: android google-maps android-studio firebase build.gradle


【解决方案1】:

您正在混合相互依赖的依赖版本:

compile 'com.google.firebase:firebase-appindexing:10.0.1'
compile 'com.google.firebase:firebase-database:9.8.0'
compile "com.google.android.gms:play-services-base:8.4.0"
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile "com.google.android.gms:play-services:8.4.0"

对播放服务的依赖:

+--- com.google.firebase:firebase-core:10.2.1
|    \--- com.google.firebase:firebase-analytics:10.2.1
|         +--- com.google.android.gms:play-services-basement:10.2.1 -> 10.2.4 (*)
|         +--- com.google.firebase:firebase-common:10.2.1
|         |    +--- com.google.android.gms:play-services-    basement:10.2.1 -> 10.2.4 (*)
|         |    \--- com.google.android.gms:play-services-tasks:10.2.1 -> 10.2.4 (*)
|         \--- com.google.firebase:firebase-analytics-impl:10.2.1
|              +--- com.google.android.gms:play-services-basement:10.2.1 -> 10.2.4 (*)
|              +--- com.google.firebase:firebase-iid:10.2.1
|              |    +--- com.google.android.gms:play-services-basement:10.2.1 -> 10.2.4 (*)
|              |    \--- com.google.firebase:firebase-common:10.2.1 (*)
|              +--- com.google.firebase:firebase-common:10.2.1 (*)
|              \--- com.google.android.gms:play-services-tasks:10.2.1 -> 10.2.4 (*)

从上面可以看出,firebase 核心依赖依赖于播放服务库。这会导致问题,因为一个库可能正在查看版本 10,而编译的版本实际上是 8.4,因此可能会丢失方法,这就是异常告诉您的。 (No static method)

firebase 库确实依赖于 play-services 核心库,因此请确保它们兼容,这可以通过使用最新版本号来完成:10.2.4

您还缺少 firebase 核心依赖项,添加:compile 'com.google.firebase:firebase-core:10.2.4'

【讨论】:

  • 我用 compile 'com.google.firebase:firebase-appindexing:10.2.1' compile 'com.google.firebase:firebase-database:10.2.1' compile 'com.google.firebase: firebase-core:10.2.1' 编译 "com.google.android.gms:play-services-base:10.2.1" 编译 'com.google.android.gms:play-services-maps:10.2.1' 编译 " com.google.android.gms:play-services:10.2.1"
  • 但错误未解决
【解决方案2】:
You have to update your Google Play Service to the last version 

当我尝试使用 firebase-messaging:10.2.0 并解决这个问题时遇到了同样的问题:

.On Android studio, go to the menu bar and click on Tools > Android > SDK Manager.
.Click on the SDK Tools tab
.check the Google Play services box as well as the Google Repository box.
.Click on apply, it will prompt you before applying the new updates.
.Click Ok and wait for the download
.Sync your project again and everything is fine

注意:所有 com.google.android.gms 库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。如果您已经有 google play services 的现有依赖项,请将其升级到与 firebase 相同的版本。

【讨论】:

    【解决方案3】:

    将 Firebase 和 Google 库匹配到相同的版本。

    这个
    编译 'com.google.firebase:firebase-appindexing:10.2.6'
    编译 'com.google.firebase:firebase-database:10.2.6'

    编译 'com.google.android.gms:play-services-base:10.2.6'
    编译 'com.google.android.gms:play-services-maps:10.2.6'
    编译 'com.google.android.gms:play-services:10.2.6'

    【讨论】:

    • 是的,我改变了,但它给出了 values-v24.xml 错误
    • 我作为示例提供的这个版本(数字)是当前库的最新版本。降低版本以满足您的需求(没有解决方案)或提高编译和目标 SDK(并更新 SDK 库)。这应该会更新您的应用设置以正确编译。
    【解决方案4】:

    apply plugin: 'com.google.gms.google-services'放在app/build.gradle的底部

    【讨论】:

    • 是的,我添加了但收到同样的错误
    • 从文件顶部擦除
    • 是的兄弟,我在依赖项之后删除并添加它(代码底部)
    • 我现在应该做什么?
    • 使用相同版本的 firebase no appindexing:10.0.1 and database:9.8.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2019-05-15
    • 2020-03-25
    • 2021-02-11
    • 1970-01-01
    相关资源
    最近更新 更多