【发布时间】:2019-03-03 21:47:03
【问题描述】:
我在 Android 4.0.4 上得到了很多这样的东西,其中 android.app.ActivityManager.getMyMemoryState 缺少方法。
完整的堆栈跟踪是:
Fatal Exception: java.lang.NoSuchMethodError: android.app.ActivityManager.getMyMemoryState
at com.google.android.gms.common.api.internal.BackgroundDetector.readCurrentStateIfPossible(Unknown Source:17)
at com.google.android.gms.common.api.internal.GoogleApiManager.handleMessage(Unknown Source:169)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.google.android.gms.internal.base.zap.dispatchMessage(Unknown Source:8)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:65
我的gms相关依赖是:
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-games:16.0.0'
+火力基地:
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-perf:16.2.3'
implementation 'com.google.firebase:firebase-ads:17.1.3'
似乎是最新的(在撰写本文时)
我能做些什么来防止这些崩溃吗?
【问题讨论】:
-
您也有任何 Firebase 库吗?当我升级所有 Firebase 和 GMS 库(15.x -> 16.x)时,我注意到了这一点。很难确定是哪一个导致了问题,因为崩溃是间歇性的。我注意到在我的 Android 4 设备上它崩溃了几次,但该应用最终会在第二次或第三次启动时运行 find。
-
是的。我还使用:firebase-core:16.0.7、firebase-perf:16.2.3 和 firebase-ads:17.1.3
-
看起来像
ViewCompat问题最小 sdk 版本?当您不提供完整的 build.gradle 文件时,您真的会束缚我们的手。 -
@JonGoodwin,对不起,我提供了足够的信息,这里是完整的build.gradle
-
@Jsyntax,我还不确定,但可能我找到了问题:在
play-services-base:16.1.0com.google.android.gms.common.api.internal.BackgroundDetector.readCurrentStateIfPossible在尝试调用android.app.ActivityManager.getMyMemoryState之前检查 API 级别至少为 Jelly Bean(在在 Jelly Bean 中引入)但在 16.1.0PlatformVersion.isAtLeastJellyBean中,无论实际的 android API 级别如何,都返回 true。所以我降级为play-services-base:16.0.1。到目前为止,Crashlytics 没有记录到降级play-services-base的崩溃。
标签: android crash google-play-services