- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 Xamarin Android 应用程序随机崩溃,导致 native Android 堆栈跟踪。这些堆栈跟踪包含很少的实际信息,我不知道如何从这里继续。
一些背景信息:应用程序主要显示不同 fragment 和 Activity 中的远程 (http) 图像列表。 App基于MvvmCross,主要使用MvxRecyclerview + MvxImageView来展示图片。滚动和浏览某些列表后会发生崩溃。崩溃主要发生在返回到 backstack 上的 Activity 时。
我最好的猜测是图像在实际仍在使用时就被处理了。但是,即使在使用时强制处理图像,这也不会导致崩溃,而是导致图像不显示。所以我不再确定我的理论。
我该怎么做才能从此堆栈跟踪中获取更多信息?
堆栈跟踪:
[mono-rt]
[mono-rt] Attempting native Android stacktrace:
[mono-rt]
[mono-rt] at ???+0 [0xb6fa9dbf]
[mono-rt] at ???+0 [0xb6f94838]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ???+0 [0xb6f947e8]
[mono-rt] at ???+0 [0xb6f94247]
[mono-rt] at ZN7android10uirenderer10RenderNode11prepareTreeERNS0_8TreeInfoE+73 [0xb6f946a9]
[mono-rt] at _ZN7android14RootRenderNode11prepareTreeERNS_10uirenderer8TreeInfoE+44 [0xb7671dec]
[mono-rt] at ???+44 [0xb6fadf5a]
[mono-rt] at ???+44 [0xb6fb0010]
[mono-rt] at _ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+153 [0xb6fb4cc9]
[mono-rt] at _ZN7android6Thread11_threadLoopEPv+398 [0xb74219de]
[mono-rt] at _ZN7android14AndroidRuntime15javaThreadShellEPv+98 [0xb7623c62]
[mono-rt] at _ZN13thread_data_t10trampolineEPKS+122 [0xb74210fa]
[mono-rt] at _ZL15__pthread_startPv+56 [0xb749c218]
[mono-rt] at __start_thread+25 [0xb7497599]
[mono-rt] at __bionic_clone+70 [0xb748e166]
[mono-rt]
[mono-rt] =================================================================
[mono-rt] Got a SIGSEGV while executing native code. This usually indicates
[mono-rt] a fatal error in the mono runtime or one of the native libraries
[mono-rt] used by your application.
[mono-rt] =================================================================
[mono-rt]
[libc] Fatal signal 11 (SIGSEGV), code 1, fault addr 0x34 in tid 22303 (RenderThread)
更新
Logcat 输出包含更多信息。以前的输出来自 Xamarin App 控制台输出。
09-24 09:40:25.957: A/libc(3495): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x34 in tid 3517 (RenderThread)
09-24 09:40:26.058: I/DEBUG(66): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-24 09:40:26.058: I/DEBUG(66): Build fingerprint: 'generic/vbox86p/vbox86p:5.1/LMY47D/lc09011706:userdebug/test-keys'
09-24 09:40:26.058: I/DEBUG(66): Revision: '0'
09-24 09:40:26.058: I/DEBUG(66): ABI: 'x86'
09-24 09:40:26.058: I/DEBUG(66): pid: 3495, tid: 3517, name: RenderThread >>> digipolis.ama.beta.staging <<<
09-24 09:40:26.058: I/DEBUG(66): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x34
09-24 09:40:26.066: I/DEBUG(66): eax 00000000 ebx b704b508 ecx 00000000 edx 00000000
09-24 09:40:26.066: I/DEBUG(66): esi a05d130c edi 9d219b50
09-24 09:40:26.066: I/DEBUG(66): xcs 00000073 xds 0000007b xes 0000007b xfs 00000087 xss 0000007b
09-24 09:40:26.066: I/DEBUG(66): eip b701adbf ebp a09f9124 esp a05d12d0 flags 00210246
09-24 09:40:26.066: I/DEBUG(66): backtrace:
09-24 09:40:26.066: I/DEBUG(66): #00 pc 0007edbf /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #01 pc 00069838 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #02 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #03 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #04 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #05 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #06 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #07 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #08 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #09 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #10 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #11 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #12 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #13 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #14 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #15 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.066: I/DEBUG(66): #16 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #17 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #18 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #19 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #20 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #21 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #22 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #23 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #24 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #25 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #26 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #27 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #28 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #29 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #30 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #31 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #32 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #33 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #34 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #35 pc 000697e8 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #36 pc 00069247 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #37 pc 000696a9 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTree(android::uirenderer::TreeInfo&)+73)
09-24 09:40:26.067: I/DEBUG(66): #38 pc 000bfdec /system/lib/libandroid_runtime.so (android::RootRenderNode::prepareTree(android::uirenderer::TreeInfo&)+44)
09-24 09:40:26.067: I/DEBUG(66): #39 pc 00082f5a /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #40 pc 00085010 /system/lib/libhwui.so
09-24 09:40:26.067: I/DEBUG(66): #41 pc 00089cc9 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+153)
09-24 09:40:26.067: I/DEBUG(66): #42 pc 000169de /system/lib/libutils.so (android::Thread::_threadLoop(void*)+398)
09-24 09:40:26.067: I/DEBUG(66): #43 pc 00071c62 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+98)
09-24 09:40:26.067: I/DEBUG(66): #44 pc 000160fa /system/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+122)
09-24 09:40:26.067: I/DEBUG(66): #45 pc 00021218 /system/lib/libc.so (__pthread_start(void*)+56)
09-24 09:40:26.067: I/DEBUG(66): #46 pc 0001c599 /system/lib/libc.so (__start_thread+25)
09-24 09:40:26.067: I/DEBUG(66): #47 pc 00013166 /system/lib/libc.so (__bionic_clone+70)
09-24 09:40:26.129: I/DEBUG(66): Tombstone written to: /data/tombstones/tombstone_03
最佳答案
您可能想尝试我对上一篇帖子的回答中的一些建议。如果 Visual Studio 没有打破异常,那么可以先尝试 #2。然后,如果你能让它真正崩溃,那么#3 可能会在那时有所帮助。如果您找到更好的解决方案,一定要告诉我们。
https://stackoverflow.com/a/32655244/3850012
简单介绍一下:
#2 谈论 Hook 到 Android 的异常事件并在其中设置断点,这使我能够真正地中断 Visual Studio 中的异常,以前,只会使应用程序崩溃并停止调试器。
#3 讨论在异常详细信息中在哪里可以找到更多有用的信息,一旦您能够正确中断,就会告诉您异常可能来自哪个文件和行。
在处理异步操作时,上一篇文章的答案对我很有帮助,但希望您也能从中找到一些用处。
关于android - 调试 native Android 崩溃的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742246/
我最近在/ drawable中添加了一些.gifs,以便可以将它们与按钮一起使用。这个工作正常(没有错误)。现在,当我重建/运行我的应用程序时,出现以下错误: Error: Gradle: Execu
Android 中有返回内部存储数据路径的方法吗? 我有 2 部 Android 智能手机(Samsung s2 和 s7 edge),我在其中安装了一个应用程序。我想使用位于这条路径中的 sqlit
这个问题在这里已经有了答案: What's the difference between "?android:" and "@android:" in an android layout xml f
我只想知道 android 开发手机、android 普通手机和 android root 手机之间的实际区别。 我们不能从实体店或除 android marketplace 以外的其他地方购买开发手
自Gradle更新以来,我正在努力使这个项目达到标准。这是一个团队项目,它使用的是android-apt插件。我已经进行了必要的语法更改(编译->实现和apt->注释处理器),但是编译器仍在告诉我存在
我是android和kotlin的新手,所以请原谅要解决的一个非常简单的问题! 我已经使用导航体系结构组件创建了一个基本应用程序,使用了底部的导航栏和三个导航选项。每个导航选项都指向一个专用片段,该片
我目前正在使用 Facebook official SDK for Android . 我现在正在使用高级示例应用程序,但我不知道如何让它获取应用程序墙/流/状态而不是登录的用户。 这可能吗?在那种情
我在下载文件时遇到问题, 我可以在模拟器中下载文件,但无法在手机上使用。我已经定义了上网和写入 SD 卡的权限。 我在服务器上有一个 doc 文件,如果用户单击下载。它下载文件。这在模拟器中工作正常但
这个问题在这里已经有了答案: What is the difference between gravity and layout_gravity in Android? (22 个答案) 关闭 9
任何人都可以告诉我什么是 android 缓存和应用程序缓存,因为当我们谈论缓存清理应用程序时,它的作用是,缓存清理概念是清理应用程序缓存还是像内存管理一样主存储、RAM、缓存是不同的并且据我所知,缓
假设应用程序 Foo 和 Eggs 在同一台 Android 设备上。任一应用程序都可以获取设备上所有应用程序的列表。一个应用程序是否有可能知道另一个应用程序是否已经运行以及运行了多长时间? 最佳答案
我有点困惑,我只看到了从 android 到 pc 或者从 android 到 pc 的例子。我需要制作一个从两部手机 (android) 连接的 android 应用程序进行视频聊天。我在想,我知道
用于使用 Android 以编程方式锁定屏幕。我从 Stackoverflow 之前关于此的问题中得到了一些好主意,并且我做得很好,但是当我运行该代码时,没有异常和错误。而且,屏幕没有锁定。请在这段代
文档说: android:layout_alignParentStart If true, makes the start edge of this view match the start edge
我不知道这两个属性和高度之间的区别。 以一个TextView为例,如果我将它的layout_width设置为wrap_content,并将它的width设置为50 dip,会发生什么情况? 最佳答案
这两个属性有什么关系?如果我有 android:noHistory="true",那么有 android:finishOnTaskLaunch="true" 有什么意义吗? 最佳答案 假设您的应用中有
我是新手,正在尝试理解以下 XML 代码: 查看 developer.android.com 上的文档,它说“starStyle”是 R.attr 中的常量, public static final
在下面的代码中,为什么当我设置时单选按钮的外观会发生变化 android:layout_width="fill_parent" 和 android:width="fill_parent" 我说的是
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
假设我有一个函数 fun myFunction(name:String, email:String){},当我调用这个函数时 myFunction('Ali', 'ali@test.com ') 如何
我是一名优秀的程序员,十分优秀!