java.lang.NoSuchMethodError:没有静态方法-Firebase问题,尽管没有使用FirebaseMessagingService?
因此,我使用Firebase获取我的应用程序分析,但我的用户一直报告我无法在任何测试设备中重新创建(崩溃)的崩溃 我在我的应用程序中编写了一个bug报告库,它会通过电子邮件向我发送详细的日志,并找出主要原因 令人惊讶的是,我甚至没有在我的应用程序中使用FirebaseMessagingService,所以想知道是否有人可以在这里帮助我?尝试搜索解决方案,但找不到,因此在此处创建了一个线程 这是日志:java.lang.NoSuchMethodError:没有静态方法-Firebase问题,尽管没有使用FirebaseMessagingService?,java,android,Java,Android,因此,我使用Firebase获取我的应用程序分析,但我的用户一直报告我无法在任何测试设备中重新创建(崩溃)的崩溃 我在我的应用程序中编写了一个bug报告库,它会通过电子邮件向我发送详细的日志,并找出主要原因 令人惊讶的是,我甚至没有在我的应用程序中使用FirebaseMessagingService,所以想知道是否有人可以在这里帮助我?尝试搜索解决方案,但找不到,因此在此处创建了一个线程 这是日志: ava.lang.NoSuchMethodError: No static method zza
ava.lang.NoSuchMethodError: No static method zzad()Lcom/google/firebase/iid/zzan; in class Lcom/google/firebase/iid/zzan; or its super classes (declaration of 'com.google.firebase.iid.zzan' appears in /data/app/com.myapp.myapp-1/base.apk:classes2.dex)
at com.google.firebase.messaging.FirebaseMessagingService.zzb(Unknown Source)
at com.google.firebase.iid.zzb.onStartCommand(Unknown Source)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3770)
at android.app.ActivityThread.-wrap23(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6816)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
我的身材。格雷德尔:
apply plugin: 'com.android.application'
//apply plugin: 'com.google.android.gms.oss-licenses-plugin'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.myapp.myapp"
minSdkVersion 18
targetSdkVersion 28
multiDexEnabled true
resConfigs "en"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/services/com.fasterxml.jackson.core.ObjectCodec'
exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dexOptions {
jumboMode true
}
}
repositories {
google()
flatDir {
dirs 'libs'
}
maven {
url "https://jitpack.io"
}
jcenter()
}
dependencies {
implementation 'com.devbrackets.android:exomedia:4.0.3'
// Radio
implementation 'com.google.android.exoplayer:exoplayer:r2.4.3'
implementation 'com.cleveroad:audiovisualization:1.0.1'
implementation 'com.google.code.gson:gson:2.8.5'
// General
implementation 'org.jsoup:jsoup:1.11.2'
implementation 'com.onesignal:OneSignal:3.10.6'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.duolingo.open:rtl-viewpager:1.0.2'
implementation 'com.github.chrisbanes:PhotoView:1.3.1'
implementation 'com.android.support:multidex:1.0.3'
// Google Support Libraries
implementation 'com.android.support:multidex-instrumentation:1.0.3'
implementation "com.android.support:exifinterface:$supportlib_version"
implementation "com.android.support:cardview-v7:$supportlib_version"
implementation "com.android.support:appcompat-v7:$supportlib_version"
implementation "com.android.support:recyclerview-v7:$supportlib_version"
implementation "com.android.support:design:$supportlib_version"
implementation "com.android.support:support-v4:$supportlib_version"
implementation "com.android.support:support-core-utils:$supportlib_version"
implementation "com.android.support:support-media-compat:$supportlib_version"
implementation "com.android.support:customtabs:$supportlib_version"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
// Google Services
implementation "com.google.android.gms:play-services-oss-licenses:$gps_version"
implementation "com.google.android.gms:play-services-gcm:$gps_version"
implementation "com.google.android.gms:play-services-ads:$gps_version"
implementation files('libs/YouTubeAndroidPlayerApi.jar')
// Firebase
implementation 'com.google.firebase:firebase-core:16.0.3'
// Flurry Analytics
implementation 'com.flurry.android:analytics:11.6.0@aar'
// About Fragment
implementation project(':library')
implementation project(':crashlib')
// Easyrest Library
implementation('com.github.fcopardo:easyrest:v1.4.2@aar') {
transitive = true
}
// ta4j for technical analysis
implementation 'org.ta4j:ta4j-core:0.11'
// display libraries
implementation 'com.github.florent37:fiftyshadesof:1.0.0'
// retrofit for quick and safe network communication
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.github.faruktoptas:RetrofitRssConverterFactory:0.0.2'
// RxJava for multithreaded network requests with retrofit
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
// PriceChart Library
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
// Okhttp And Logging
implementation 'com.squareup.okhttp3:okhttp:3.14.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
// Custom font lib
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
// Material Dialogs - Sort By Menu
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
// Toggle Button - Currency Card
implementation 'com.nex3z:toggle-button-group:1.1.2'
// Favrorite Button - Star
implementation 'com.github.ivbaranov:materialfavoritebutton:0.1.5'
// Bottom Dialog Sheet
implementation 'com.github.marcoscgdev:DialogSheet:1.0.5'
// Intro Lib
implementation 'agency.tango.android:material-intro-screen:0.0.5'
implementation 'com.jakewharton.threetenabp:threetenabp:1.2.0'
}
apply plugin: 'com.google.gms.google-services'
// Work around
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
格拉德尔项目:
allprojects {
repositories {
google()
jcenter()
maven {
url "https://maven.google.com"
}
maven {
url 'https://jitpack.io'
}
}
}
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
//classpath 'com.google.android.gms:oss-licenses-plugin:0.9.4'
}
repositories {
google()
maven {
url 'https://maven.google.com/'
}
jcenter()
}
}
ext {
supportlib_version = '28.0.0'
gps_version = '[16.0.0, 17.0.0)'
fb_version = '[15.0.0, 17.0.0)'
archRoomVersion = "1.0.0"
}
//Ensure that all dependencies use the same version of the Android Support library
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex')) {
details.useVersion "$supportlib_version"
}
if (details.requested.group == 'com.google.android.gms'
&& !details.requested.name.contains('multidex')) {
details.useVersion "$gps_version"
}
if (details.requested.group == 'com.google.firebase'
&& !details.requested.name.contains('multidex')) {
details.useVersion "$fb_version"
}
}
}
}
allprojects {
repositories {
google()
jcenter()
}
}
提前谢谢 删除此行(它导致的问题比解决的问题多-它只会隐藏问题):
依赖项应该类似于此(
ads
和gcm
现在位于com.google.firebase
):
当然,这也需要在代码中更改名称空间,以及从GCM
迁移到FCM
,但这种迁移肯定迟早会发生,因为GCM
被关闭。删除这一行(它会导致比解决问题更多的问题-它只会隐藏问题):
依赖项应该类似于此(
ads
和gcm
现在位于com.google.firebase
):
当然,这也需要在代码中更改名称空间,以及从
GCM
迁移到FCM
,但这种迁移肯定迟早会到来,要关闭GCM。这可能是由于库/应用程序的编译版本和运行版本之间存在库依赖关系的不同版本冲突造成的。可能是您的其他依赖项之一依赖于旧版本的FCM或其他库。基本上,您的项目可能取决于同一库的不同版本
正如Martin在回答中提到的那样,如果您再次编译,请删除版本检查,日志中应显示确切的冲突,然后您可以非常轻松地解决它。这可能是由于您的库/应用程序的编译版本和运行时版本之间的库依赖关系的不同版本冲突造成的。可能是您的其他依赖项之一依赖于旧版本的FCM或其他库。基本上,您的项目可能取决于同一库的不同版本
正如Martin在回答中提到的,删除版本检查,如果您再次编译,则日志中应显示确切的冲突,然后您可以非常轻松地解决它。删除该行会引发生成错误:错误:在project“app”中,已解决的Google Play services库依赖依赖于另一个精确版本(例如“[15.1.0]”,但未解析为该版本。库显示的行为将是未知的。依赖项失败:com.google.firebase:firebase消息:15.0.2->com.google.firebase:firebase iid@[15.1.0],但fire base iid版本是16.2.0。--项目“应用程序”依赖于com.google.firebase:firebase-core@16.0.3--项目“应用程序”依赖于com.google.firebase:firebase-analytics@16.4.0--项目“应用程序”取决于com.onesignal:OneSignal@3.10.6--项目“应用程序”依赖于com.google.firebase:firebase-messaging@15.0.2--项目“应用程序”依赖于nto com.google.android.gms:游戏服务测量-api@16.4.0--项目“应用程序”依赖于com.google.firebase:firebase-core@16.0.8--项目“应用程序”依赖于com.google.firebase:firebase-iid@16.2.0@StevenRõgrêyour
build.gradle
没有反映任何这一点,也没有匹配错误消息……com.google.android.gms:播放服务基础:16.1.0
(其他仍在16.0.0
)将是当前版本。请使用所有依赖项更新问题,以便我可以复制和粘贴。我已使用完整的build.gradle和project gradle更新OP。请检查。删除该行将引发生成错误:错误:在project“app”中,已解决的Google Play services库依赖项取决于另一个精确版本(例如“[15.1.0]”,但未解析为该版本。库显示的行为将未知。依赖项失败:com.google.firebase:firebase messaging:15.0.2->com.google.firebase:firebase iid@[15.1.0],但fire base iid版本是16.2.0。--项目“应用程序”依赖于com.google.firebase:firebase-core@16.0.3--项目“应用程序”依赖于com.google.firebase:firebase-analytics@16.4.0--项目“应用程序”取决于com.onesignal:OneSignal@3.10.6--项目“应用程序”依赖于com.google.firebase:firebase-messaging@15.0.2--项目“应用程序”依赖于nto com.google.android.gms:游戏服务测量-api@16.4.0--项目“应用程序”依赖于com.google.firebase:firebase-core@16.0.8--项目“应用程序”依赖于com.google.firebase:firebase-iid@16.2.0@StevenRõgrêyourbuild.gradle
没有反映任何这一点,也没有匹配错误消息……com.google.android.gms:play services base:16.1.0
(其他版本仍在16.0.0
)将是当前版本。请使用所有依赖项更新问题,以便我可以复制和粘贴。我已使用完整的build.gradle和project gradle更新OP。请检查。
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
// Google Services
implementation "com.google.android.gms:play-services-base:16.1.0"
implementation "com.google.android.gms:play-services-auth:16.0.1"
// implementation "com.google.android.gms:play-services-ads:17.2.0"
// Firebase
implementation "com.google.firebase:firebase-core:16.0.8"
implementation "com.google.firebase:firebase-messaging:17.5.0"
implementation "com.google.firebase:firebase-ads:17.2.0"