java.lang.NoSuchMethodError:没有静态方法 - 尽管没有使用FirebaseMessagingService,Firebase问题?

问题描述 投票:0回答:2

所以我正在使用Firebase来获取我的应用分析,但我的用户一直在报告崩溃,我无法在任何测试设备中重新创建(崩溃)。

我在我的应用程序中编写了一个错误报告库,它会通过电子邮件向我发送详细日志,并找出主要原因。

令人惊讶的是,我甚至没有在我的应用程序中使用FirebaseMessagingService,所以想知道是否有人可以帮助我在这里?尝试搜索解决方案,但无法找到它,所以在这里创建一个线程。

这是日志:

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)

我的build.gradle:

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

项目gradle:

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()
    }
}

提前致谢!

java android
2个回答
1
投票

删除此行(它会导致比解决更多的问题 - 它只隐藏问题):

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

依赖关系应该看起来很相似(adsgcm现在低于com.google.firebase):

// 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"

当然,这还需要代码中的名称空间更改,以及从GCM迁移到FCM,但这种迁移肯定迟早会到期,因为GCM被关闭。


1
投票

这可能是由库/应用程序的已编译版本和运行时版本之间的库依赖关系的不同版本冲突引起的。可能是您的其他依赖项之一依赖于较旧版本的FCM或其他库。基本上,您的项目可能取决于同一个库的不同版本。

正如Martin在他的回答中提到的,删除版本检查,如果再次编译,应该在日志中显示确切的冲突,然后您可以非常轻松地解决它。

© www.soinside.com 2019 - 2024. All rights reserved.