[英]jdk.internal.misc.Unsafe.park (Native method) crash in android app
我在 android app jdk.internal.misc.Unsafe.park(本机方法)中面临这个问题
stackoverflow 中有几个答案,但我需要 android 特定方式
main (waiting): tid=1 systid=14525
at jdk.internal.misc.Unsafe.park(Native method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267)
at com.google.android.gms.common.api.internal.zabe.zai(com.google.android.gms:play-services-base@@18.0.1:1)
at com.google.android.gms.common.api.internal.zabd.zaa(com.google.android.gms:play-services-base@@18.0.1:2)
at com.google.android.gms.common.api.internal.zabx.onReceive(com.google.android.gms:play-services-base@@18.0.1:4)
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1752)
at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(unavailable:2)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8191)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
我也有这个问题。 就我而言,这是由于未正确请求位置而导致的 ANR。 我正在使用一个过时的库来做到这一点。 一旦我搬出图书馆并使用 Android 推荐的查询当前位置的方法,它就可以正常工作。
有问题的库: https://github.com/mcharmas/Android-ReactiveLocation
Android 推荐的当前位置查询方式: https://developer.android.com/training/location/retrieve-current
您提供的堆栈跟踪表明崩溃是在获取 Google Play 服务基础库 ( com.google.android.gms
) 中的锁时发生的。 您可以采取以下几个步骤来解决此问题:
更新 Google Play 服务:确保您使用的是最新版本的 Google Play 服务库。 检查您的build.gradle
文件并将依赖项更新为可用的最新版本。
更新 Android SDK:确保您在开发环境中安装了最新的 Android SDK。 使用 SDK Manager 更新 SDK 以确保您拥有最新的平台和构建工具。
检查兼容性问题:验证您的应用程序的依赖项(包括 Google Play 服务和其他第三方库)相互兼容并与您的目标 Android SDK 版本兼容。 不同库版本或 SDK 版本之间的不兼容可能会导致崩溃。
查看代码交互:检查您与 Google Play 服务交互的代码路径。 检查您是否正确使用 API 并处理回调和并发。 确保您没有在主线程上执行任何长时间运行或阻塞的操作。
Test on Different Devices and Android Versions:验证崩溃是否在多个设备和Android版本上一致发生。 该问题可能是特定于设备或与特定 Android 平台版本相关的。
分析崩溃报告和日志:研究完整的堆栈跟踪和任何伴随的错误消息或日志。 在日志中查找可能为崩溃提供额外上下文的任何其他相关信息。
联系 Google 支持:如果问题仍然存在并且您已用尽所有故障排除选项,请考虑联系 Google Play 服务支持或在 Google Play 服务支持论坛上发帖以获得进一步帮助。
请记住,诊断和解决崩溃可能很复杂,并且可能需要对您的代码和依赖项进行彻底调查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.