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

Posted

技术标签:

【中文标题】为啥我会收到“服务未注册”异常,即使我没有在 Android - Java/Kotlin 中使用任何服务?【英文标题】:Why does I'm getting "Service not registered" exception, even though I not used any service in Android - Java/Kotlin?为什么我会收到“服务未注册”异常,即使我没有在 Android - Java/Kotlin 中使用任何服务? 【发布时间】:2021-01-22 15:23:03 【问题描述】:

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

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

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'

基础应用程序

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


疑难解答:

    找到这个:https://developers.google.com/android/reference/com/google/android/gms/measurement/package-summary 在 *** 上搜索,但没有找到合适的解决方案 已检查清单文件 在测试时,Firebase 服务运行良好 不明白,在哪里调试什么!

谢谢!

【问题讨论】:

您是否在您的 gradle 文件中应用了插件以用于播放服务?像这样;应用插件:'com.google.gms.google-services' @samuelowino 是的,检查问题 na,这是 Google Analytics 依赖项的问题:developers.google.com/android/reference/com/google/android/gms/… 如果您使用的所有 Firebase 服务都正常工作,那么您可能应该忽略它,因为它是警告级别日志 @samuelowino 不不,我想解决这个问题,拜托! Firebase 分析存在一些问题 如果它确实影响了您的应用程序的要求,那么您应该调查一下,这似乎是一个内部 firebase 问题。 【参考方案1】:

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

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

【讨论】:

@samuelowino 你能解释一下你的答案背后的原因吗?如何推断要包含哪个库以及它的哪个版本? 是的,如果您能解释为什么我们需要添加它,我们将不胜感激。提前致谢 为什么添加这个可以解决问题? 今天的答案不准确 太棒了@Timo【参考方案2】:

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

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

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

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

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

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

在您的崩溃相关依赖项发生时的完整堆栈跟踪 应用程序理想的步骤来重现 Bumping this reply,所以它更多 对人们可见。

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

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

【讨论】:

我在 Flutter 中遇到过这个问题,现在还在处理中。 目前还没有修复吗? 问题依旧【参考方案3】:

我最近遇到了类似的问题,但在 Android 模拟器中使用了 AdMob。寻找解决方案,但我什么也没找到。 最后,我关闭模拟器,打开AVD管理器擦除模拟器数据,重新打开模拟器然后警告异常消失了。

【讨论】:

【参考方案4】:

在这个问题上遇到问题的开发人员我已经用 com.google.firebase:firebase-bom:26.1.1 进行了很多检查,我认为必须在颤振方面更改一些依赖项以支持最新的依赖项。

但您仍然可以使用以下命令让您的应用正常运行: 在您的 //build.gradle 文件中 ...

只需更换 bom 版本,或者你可以拥有我自己的版本,我也在使用..

dependencies 
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation platform('com.google.firebase:firebase-bom:25.12.0')
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.firebase:firebase-messaging'

【讨论】:

这不是一个合适的解决方案。【参考方案5】:

我遇到了同样的问题。但是在检查firebase控制台时,我发现firebase错误为 “Storage full”表示当月的可用空间用于数据库。

【讨论】:

这是另一回事! @SychiSingh 这个答案可能对其他人有帮助。 不。问题的实际答案与Android设备播放服务版本有关。一旦推出,这个警告就会消失。 不,你错了。这个门户是为了帮助人们。有时会漏掉一些案件。通过检查所有答案,人们可​​以获得提示。不好争辩。 在那之后你仍然会面临这个问题,因为它与 Firebase 限制无关。它与具有某些播放服务版本的Android设备有关。

以上是关于为啥我会收到“服务未注册”异常,即使我没有在 Android - Java/Kotlin 中使用任何服务?的主要内容,如果未能解决你的问题,请参考以下文章

即使我允许所有来源,为啥我会收到 CORS 错误?

为啥我会收到“浮点异常(核心转储)”?

为啥我会收到一条异常消息“非虚拟(在 VB 中可覆盖)成员上的设置无效...”?

“在 onSaveInstanceState 之后无法执行此操作” - 为啥我会从我的活动的 onResume 方法中收到此异常?

当 Spring Cloud Stream 反应式使用者遇到异常时,为啥我会收到 onComplete 信号?

为啥我会收到 WELD-001303: No active contexts for scope type javax.enterprise.context.RequestScoped 异常?