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

Syc*_*ngh 29 java service android kotlin firebase

我没有使用任何接收器或其他东西。但是我在我的 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)
Run Code Online (Sandbox Code Playgroud)

Manifest文件中没有什么重要的。

Buld.gradle(应用程序):

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
}
Run Code Online (Sandbox Code Playgroud)

Build.gradle(模块)

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'
Run Code Online (Sandbox Code Playgroud)

基础应用

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

}
Run Code Online (Sandbox Code Playgroud)

故障排除:

  1. 发现这个:https : //developers.google.com/android/reference/com/google/android/gms/measurement/package-summary
  2. 在stackoverflow上搜索,但没有找到合适的解决方案
  3. 检查清单文件
  4. 测试时,Firebase 服务运行良好
  5. 没看懂,什么地方调试!

谢谢!

sam*_*ino 33

将此添加到您的build.gradle依赖项中:

dependencies {
    implementation 'com.google.android.gms:play-services-basement:17.5.0'
}
Run Code Online (Sandbox Code Playgroud)

  • 今天的答案不准确 (12认同)
  • @samuelowino 你能解释一下你的答案背后的原因吗?如何推断要包含哪个库及其版本? (3认同)

Syc*_*ngh 13

此答案最后更新于: 2021 年 2 月 12 日

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

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

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

我知道这给开发人员带来了不便,但它是警告而不是崩溃。所以请耐心等待,直到更新推出。谢谢

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

在您的应用程序的相关依赖项崩溃时的完整堆栈跟踪理想情况下会逐步重现此回复,因此人们更容易看到它。

再一次:警告是良性的,可以安全地忽略。该修复程序将于 2021 年 2 月左右推出,开发人员无需采取任何行动,该修复程序将适用于 google play 服务本身,现有应用程序将停止生成警告。

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

  • 我在 Flutter 中遇到了这个问题,并且仍在继续。 (2认同)