为什么我会收到“服务未注册”异常,即使我没有在Android - Java / Kotlin中使用任何服务?

2022-09-01 11:48:56

我没有使用任何接收器或其他东西。但是我在我的Android项目中使用了Firebase。以前我没有得到这个例外,但突然间它正在显示!

例外:

W: Exception thrown while unbinding
    java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzjp@4701ac1
        at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1751)
        at android.app.ContextImpl.unbindService(ContextImpl.java:1776)
        at android.content.ContextWrapper.unbindService(ContextWrapper.java:741)
        at com.google.android.gms.common.stats.ConnectionTracker.zza(com.google.android.gms:play-services-basement@@17.3.0:55)
        at com.google.android.gms.common.stats.ConnectionTracker.unbindService(com.google.android.gms:play-services-basement@@17.3.0:50)
        at com.google.android.gms.measurement.internal.zziv.zzag(com.google.android.gms:play-services-measurement-impl@@17.5.0:245)
        at com.google.android.gms.measurement.internal.zziv.zzal(com.google.android.gms:play-services-measurement-impl@@17.5.0:262)
        at com.google.android.gms.measurement.internal.zziv.zzc(com.google.android.gms:play-services-measurement-impl@@17.5.0:336)
        at com.google.android.gms.measurement.internal.zziu.zza(com.google.android.gms:play-services-measurement-impl@@17.5.0:2)
        at com.google.android.gms.measurement.internal.zzai.run(com.google.android.gms:play-services-measurement-impl@@17.5.0:7)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at com.google.android.gms.measurement.internal.zzfy.run(com.google.android.gms:play-services-measurement-impl@@17.5.0:21)

清单文件中没有任何重要内容。

Buld.gradle (app):

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0-rc03'
        classpath 'com.google.gms:google-services:4.3.4'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

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

Build.gradle (module)

dependencies {
    ......

//Google Firebase
    implementation 'com.google.firebase:firebase-auth:19.4.0'
    implementation 'com.google.firebase:firebase-database:19.5.0'
    implementation 'com.google.firebase:firebase-messaging:20.3.0'
    implementation 'com.google.firebase:firebase-storage:19.2.0'
    implementation 'com.google.firebase:firebase-crashlytics:17.2.2'
    implementation 'com.google.android.gms:play-services-analytics:17.0.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
 //Google Location
    implementation 'com.google.android.gms:play-services-location:17.1.0'

    //Shimmer Layout
    implementation 'com.facebook.shimmer:shimmer:0.5.0'

    //Google Auth
    implementation 'com.google.android.gms:play-services-auth:18.1.0'
    implementation 'com.google.android.gms:play-services-auth-api-phone:17.4.0'

基本应用

public class BaseApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
        FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled(true);
    }

    protected void showLog(String msg) {
        Log.d(this.getClass().getSimpleName(), msg);
    }

}

故障 排除:

  1. 找到这个:https://developers.google.com/android/reference/com/google/android/gms/measurement/package-summary
  2. 已在堆栈溢出时搜索,但未找到正确的解决方案
  3. 已检查清单文件
  4. 在测试时,Firebase 服务运行良好
  5. 不明白,在哪里调试什么!

谢谢!


答案 1

将其添加到依赖项中:build.gradle

dependencies {
    implementation 'com.google.android.gms:play-services-basement:17.5.0'
}

答案 2

此答案最后更新日期: 12-Feb-2021

我们这边不需要采取任何行动。只需等待Google大约在2021年2月发布此“已修复”问题。

正如你们中的许多人所指出的那样,事实证明,即使使用我上面提供的解决方法,也存在一些触发警告的设备配置。

不幸的是,我们无能为力来“沉默”SDK方面的警告。该警告是由“Google Play Services”本身引起的。好消息是,问题的根本原因现已解决,但它将在2月份左右推广到设备上,因此我们将不得不忍受此警告几个月。

我知道这会给开发人员带来不便,但fwiw这是一个警告而不是崩溃。因此,请耐心等待我们,直到更新推出。谢谢

PS:你们中的许多人都评论说,此警告有时会在崩溃之后(除了它自己的例外),我相当有信心,在大多数情况下,崩溃与此警告完全无关,恰好发生在它之后。因此,请独立调查您的崩溃,只是忽略警告。但是,如果您认为崩溃是相关的,请提供:

在发生崩溃时,完整的堆栈跟踪与应用程序的相关依赖项理想地步骤再次重现此回复,因此它对人们来说更加明显。

再说一遍:警告是良性的,可以安全地忽略。该修复程序将于2021年2月左右推出,开发人员方面无需采取任何措施,该修复程序将应用于Google Play服务本身,现有应用程序将停止生成警告。

资料来源:https://github.com/firebase/firebase-android-sdk/issues/1662#issuecomment-756917362


推荐