繁体   English   中英

jdk.internal.misc.Unsafe.park(本机方法)在 android 应用程序中崩溃

[英]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 ) 中的锁时发生的。 您可以采取以下几个步骤来解决此问题:

  1. 更新 Google Play 服务:确保您使用的是最新版本的 Google Play 服务库。 检查您的build.gradle文件并将依赖项更新为可用的最新版本。

  2. 更新 Android SDK:确保您在开发环境中安装了最新的 Android SDK。 使用 SDK Manager 更新 SDK 以确保您拥有最新的平台和构建工具。

  3. 检查兼容性问题:验证您的应用程序的依赖项(包括 Google Play 服务和其他第三方库)相互兼容并与您的目标 Android SDK 版本兼容。 不同库版本或 SDK 版本之间的不兼容可能会导致崩溃。

  4. 查看代码交互:检查您与 Google Play 服务交互的代码路径。 检查您是否正确使用 API 并处理回调和并发。 确保您没有在主线程上执行任何长时间运行或阻塞的操作。

  5. Test on Different Devices and Android Versions:验证崩溃是否在多个设备和Android版本上一致发生。 该问题可能是特定于设备或与特定 Android 平台版本相关的。

  6. 分析崩溃报告和日志:研究完整的堆栈跟踪和任何伴随的错误消息或日志。 在日志中查找可能为崩溃提供额外上下文的任何其他相关信息。

  7. 联系 Google 支持:如果问题仍然存在并且您已用尽所有故障排除选项,请考虑联系 Google Play 服务支持或在 Google Play 服务支持论坛上发帖以获得进一步帮助。

请记住,诊断和解决崩溃可能很复杂,并且可能需要对您的代码和依赖项进行彻底调查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM