- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
上个月,我在 Google Play Console 上看到了原生崩溃的高峰,它们来自三星设备,其中 98% 主要是 Android 10 (90%),其次是 Android 9 (10%)。超过一半的案例是关于三星 S9 设备的,而其余的则是关于最近的设备型号(三星 s10+、Note9 等)。
有堆栈跟踪:
#00 pc 0000000000083360 /apex/com.android.runtime/lib64/bionic/libc.so (abort+176)
#01 pc 0000000000008a74 /system/lib64/liblog.so (__android_log_assert+324)
#02 pc 00000000003fb0dc /system/lib64/libhwui.so (android::uirenderer::renderthread::EglManager::swapBuffers(android::uirenderer::renderthread::Frame const&, SkRect const&)+276)
#03 pc 00000000003fae4c /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::swapBuffers(android::uirenderer::renderthread::Frame const&, bool, SkRect const&, android::uirenderer::FrameInfo*, bool*)+92)
#04 pc 0000000000407c8c /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+716)
#05 pc 0000000000406d38 /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+216)
#06 pc 0000000000417a44 /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+228)
#07 pc 0000000000417770 /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+80)
#08 pc 00000000000137a4 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+284)
#09 pc 00000000000e3b14 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
#10 pc 0000000000085330 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
此外,仅在三星设备和仅在 Android 10 上也出现了另一个问题(设备型号分布似乎很随机):在没有采取任何特殊措施的情况下解决了这个问题
#00 pc 0000000002cfeadc /data/app/com.google.android.webview-8w0eiuwFhdVaEviNzD1U7g==/base.apk!libmonochrome.so (offset 0x15b000)
我不知道是什么导致了这个问题,但我还附上了我的
build.gradle
文件依赖项,因为这些问题通常与 Google 库相关联。
findViewById
(仅在崩溃时处于 Activity 状态的 Activity 中)而不是使用 View Binding 使问题消失了。目前我正在一小群 beta 测试人员中对其进行测试,但此时我应该已经看到了一些崩溃报告。我会不断更新这篇文章。
#00 pc 0000000000053350 /apex/com.android.runtime/lib64/bionic/libc.so (fdsan_error(char const*, ...)+588)
#00 pc 000000000005304c /apex/com.android.runtime/lib64/bionic/libc.so (android_fdsan_close_with_tag+736)
#00 pc 0000000000053884 /apex/com.android.runtime/lib64/bionic/libc.so (close+16)
#00 pc 000000000000371c /system/lib64/libTcpOptimizer.mobiledata.samsung.so (close+220)
#00 pc 00000000001e7c24 /vendor/lib64/libgsl.so (!!!0000!6a7f7ec785028d96437db04399d932!4e552d6!+28)
#00 pc 00000000000bb5f8 /vendor/lib64/libgsl.so (gsl_syncobj_destroy+152)
#00 pc 000000000025d538 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!10f39af3d5dda97a64124dee6a3783!4e552d6!+456)
#00 pc 0000000000244ff8 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!04fe7c7713a0660472688458ecb7a2!4e552d6!+144)
#00 pc 000000000002b928 /system/lib64/libEGL.so (android::eglSwapBuffersWithDamageKHRImpl(void*, void*, int*, int)+776)
#00 pc 0000000000027ea4 /system/lib64/libEGL.so (eglSwapBuffersWithDamageKHR+72)
#00 pc 00000000003b0724 /system/lib64/libhwui.so (android::uirenderer::renderthread::EglManager::swapBuffers(android::uirenderer::renderthread::Frame const&, SkRect const&)+176)
#00 pc 00000000003a3e30 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::swapBuffers(android::uirenderer::renderthread::Frame const&, bool, SkRect const&, android::uirenderer::FrameInfo*, bool*)+92)
#00 pc 00000000003ac81c /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+1196)
#00 pc 00000000003ae9e4 /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+524)
#00 pc 000000000039cefc /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+208)
#00 pc 00000000003bf0ec /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+88)
#00 pc 000000000001553c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+320)
#00 pc 0000000000014db0 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+408)
#00 pc 00000000000b6234 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 0000000000050e64 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
这似乎当然与上面链接的 fdsan 问题和两年前我看到的模糊中止堆栈跟踪有关。所以我开始深入研究我的代码,寻找任何与 fd 相关的错误,结果如下:
[MediaExtractor].setDataSource(FileDescriptor)
后我从未关闭它,因为我认为是
[MediaExtractor].release()
。
我错了 。
fdopen()
的流,然后在完成时用
fclose()
关闭它。这整个流的东西是在第三方库中制作的,我不知道 ─ 或者我并不真正关心 ─ 而且我是
也 在同一个已经关闭的文件描述符上调用
close()
。这导致了所谓的双重关闭错误,你猜怎么着? fdsan 负责检测这种错误然后中止。在 Android 11 之前,fdsan 的行为只是输出无声警告,但随后默认设置更改为致命中止信号。这不可能是巧合……?
最佳答案
即使我在应用程序中的一些广告中也经历过这种崩溃。即使您可以通过调用 webview.loadUrl("chrome://crash") 来重现 webview 崩溃,这应该会使您的 webview 崩溃并且您将能够重现该场景。
抑制这些崩溃的唯一方法是覆盖 onRenderProcessGone在 webview 客户端中并在这种情况下自行处理崩溃,因为 webview 是由他们实现的,所以 Ads SDK 必须处理。
引用:https://github.com/mopub/mopub-android-sdk/issues/312
关于android - 三星设备上的 native 崩溃高峰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60365897/
我最近在/ 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 ') 如何
我是一名优秀的程序员,十分优秀!