我们正在调查另一个团队开发的一个应用程序,该应用程序在Android上与HereMaps(此处为SDK导航版,navigate-4.10.2.0.7878
)相关的本机崩溃,其stacktrace如下:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.mydomain.myapp <<<
backtrace:
#00 pc 0000000000051010 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#00 pc 0000000000e0143c /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000e0158c /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000e014f4 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000e01478 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000debfe4 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 000000000144cc84 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 00000000014035bc /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 00000000013fa668 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 000000000155cff0 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 00000000011273f8 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so (Java_com_here_sdk_navigation_VisualNavigator_disposeNativeHandle+480)
#00 pc 0000000000042020 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.odex (art_jni_trampoline+96)
#00 pc 000000000020988c /apex/com.android.art/lib64/libart.so (nterp_helper+1948)
#00 pc 0000000000b6999c /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.sdk.navigation.VisualNavigator.access$000)
#00 pc 0000000000209124 /apex/com.android.art/lib64/libart.so (nterp_helper+52)
#00 pc 0000000000b69974 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.sdk.navigation.VisualNavigator$1.disposeNative)
#00 pc 0000000000073c6c /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.odex (com.here.NativeBase$DisposableReference.dispose+156)
#00 pc 000000000020a0a0 /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
#00 pc 00000000009a3834 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.NativeBase.cleanUpQueue+26)
#00 pc 0000000000209124 /apex/com.android.art/lib64/libart.so (nterp_helper+52)
#00 pc 00000000009a380e /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.NativeBase.access$100)
#00 pc 0000000000209124 /apex/com.android.art/lib64/libart.so (nterp_helper+52)
#00 pc 00000000009a37be /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.NativeBase$DisposableReference.<init>+22)
#00 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#00 pc 00000000009a37ca /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.NativeBase$DisposableReference.<init>)
#00 pc 000000000020a748 /apex/com.android.art/lib64/libart.so (nterp_helper+5720)
#00 pc 00000000009a37fc /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.NativeBase.<init>+28)
#00 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#00 pc 00000000009ac7f8 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/oat/arm64/base.vdex (com.here.sdk.core.threading.RunnableImpl.<init>+10)
#00 pc 00000000002cdd64 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000003d5660 /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallNonvirtualVoidMethodV(_JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list)+492)
#00 pc 00000000003d4ab4 /apex/com.android.art/lib64/libart.so (art::JNI<false>::NewObjectV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+736)
#00 pc 0000000000e0e858 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000e37fac /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 0000000000e37a5c /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 000000000140dad0 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 000000000144c5e8 /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 000000000144d2bc /data/app/~~yFKezl3wu05hiNZ1aIFJIQ==/com.mydomain.myapp-sfkAGrmiHUTbEivXLD8EKQ==/base.apk!libheresdk.so
#00 pc 00000000000b2fd0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#00 pc 0000000000052834 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
编辑:
在代码中进行了一些重构和清理操作之后,我们已经达到了一个干净的状态,在这个状态下,我们确信没有任何泄漏;我们已经用LeakCanary调查并移除了所有这些,但本地崩溃仍然存在。
因此,我们试图回到basis,从github克隆了HEREMaps Navigate示例,我们发现在Navigation示例中没有任何本机崩溃,但也只有一个带有HEREMaps实例引用的活动在整个应用程序中死亡。
为了复制类似的用例,我们在示例的MainActivity之前添加了一个活动,我们尝试启动该活动并返回到第一个活动,以显示库在资源释放方面的行为。
只有从一开始就打开和关闭MainActivity才不会有任何本机崩溃,这也是因为VisualNavigator(在回溯中似乎是具有本机崩溃的类)由其委托(也称为侦听器)保留=
注意:为了能够始终重现本机崩溃,我们使用LeakCanary,因为当MainActivity
被销毁时库会强制GC;如果我们删除它,系统会随机执行GC操作。
链接:
所以这里最大的问题是:我们是否实现了错误的HEREMapsSDK集成(和管理实例发布)或者这个本机崩溃是在库内部,必须从库所有者那里修复?
在HERE SDK开发者指南中有一章介绍了如何停止导航。建议调用stopRendering()
。在您的示例应用程序中,似乎没有调用visualNavigator。当中间活动被销毁时,停止渲染()。试着打电话。
在设备的“开发者选项”菜单中,可以启用“不保留活动”来模拟此类场景。
我已经成功地用Quarkus/Graal构建了一个本机映像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(堆芯转储)”消息而崩溃。如何获得有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时传递? 我使用的是GraalVM版本20.2.0(Java版本11.0.8) 任何帮助都是非常感激的。 谢谢
我正在我的应用程序中使用CameraX API。我已经将预览用例和ImageAnalysis用例绑定到活动生命周期,如 该应用程序大部分时间都可以工作,但会随机崩溃以下日志 2020-01-17 11:24:47.411 6581-6614/com。我的应用程序D/摄像头:重置捕获会话 2020-01-17 11:24:47.411 6581-6614/com.my.appD/相机:关闭状态下的释
问题内容: 我已经四处搜寻,但是还没有找到一个答案,该答案并未将我引向第3方服务。我不需要任何复杂的东西,只是为了保存一个值,所以当该应用程序下次打开时,我可以显示一条警报,指出该应用程序已崩溃。 谢谢。 问题答案: 感谢@RyanCollins的一点帮助,我能够自己解决问题。“ 应用程序委托”中的功能仅在应用程序正常关闭时运行。用于本地检测应用程序崩溃的代码如下所示。 全局定义的变量 应用程序委
根据本教程,我正在将Fabric crashlytics集成到android react本机应用程序中。但是在使用安装Fabric软件包后,我尝试使用为应用程序添加午餐,但出现以下错误: 配置项目': react-nily-结构'时出现问题。 无法解析配置的所有文件: react-nate-结构: classpath。 找不到lint gradle api。jar(com.android.tool
Google Play Console发布前报告称,我的应用程序在Pixel Android 8.0上运行时发生崩溃(其他应用程序没有问题)。在观看重播时,我没有看到任何问题,也没有看到应用程序崩溃。 这是提供的信息。 问题:com本机崩溃。xxxxxxxxx 构建指纹:“google/sailfish/sailfish:8.0.0/OPR3。170623.008/4294783:用户/释放键版本
全部的 我在Android4.4设备上面临ANR/崩溃。下面是我从设备收到的提及日志。我仍然无法调试/关联此问题。有人能帮我追踪并修复这个问题吗。 在Android。看法GLES20Canvas。android上的nDrawDisplayList(本机方法)。看法GLES20Canvas。android上的drawDisplayList(GLES20Canvas.java:420)。看法硬件开发者