Android 7本机崩溃:libc.so tgkill


98

我看到此原生崩溃与以下堆栈跟踪。

仅在Android 7.0和7.1中会发生这种情况。该应用程序已投入生产多年,但未添加任何新内容,但随着更多设备更新为Nougat,此崩溃现在经常发生,并且正变得令人讨厌。

任何意见,将不胜感激。

native: pc 000000000007a6c4  /system/lib64/libc.so (tgkill+8)
  native: pc 0000000000077920  /system/lib64/libc.so (pthread_kill+64)
  native: pc 000000000002538c  /system/lib64/libc.so (raise+24)
  native: pc 000000000001d24c  /system/lib64/libc.so (abort+52)
  native: pc 000000000001225c  /system/lib64/libcutils.so (__android_log_assert+224)
  native: pc 00000000000610e0  /system/lib64/libhwui.so
  native: pc 000000000003908c  /system/lib64/libhwui.so
  native: pc 000000000003609c  /system/lib64/libhwui.so
  native: pc 000000000003b4fc  /system/lib64/libhwui.so
  native: pc 000000000003c520  /system/lib64/libhwui.so
  native: pc 000000000003e694  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
  native: pc 00000000000127f0  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336)
  native: pc 00000000000a50b0  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
  native: pc 00000000000770f4  /system/lib64/libc.so (_ZL15__pthread_startPv+204)
  native: pc 000000000001e7d0  /system/lib64/libc.so (__start_thread+16)

以下是受影响的设备的列表: 在此处输入图片说明

更新7/18:

仍然无法找到问题的根源,因此我决定购买出现次数最多且价格合理的设备,结果证明是配备Android 7.0的Samsung Galaxy J3 2017版本。不幸的是,我仍然无法重现崩溃。

我还在生产中对该应用程序进行了一些内存使用方面的改进,但是崩溃仍然在发生。

从所有评论和我自己的研究来看,它似乎与动态链接的NDK有关,但是我没有使用任何NDK,很难确定是否有任何依赖项。

我想分享我的依赖关系,如果其他面临相同问题的人使用相同的依赖关系之一可以召集他们,那就太好了-也许我们可以这样找出罪魁祸首。

// App Compat
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'

    // Play Services
    compile 'com.google.android.gms:play-services-location:8.3.0'
    compile 'com.google.android.gms:play-services-maps:8.3.0'
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
    compile 'com.google.android.gms:play-services-appindexing:8.3.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'

    // Misc Libraries
    compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar'
    compile files('app/libs/htmlcleaner-2.7.jar')
    compile files('app/libs/protobuf-java-2.6.0.jar')
    compile files('app/libs/nineoldandroids-2.4.0.jar')

    // Fabric
    compile('com.twitter.sdk.android:twitter:1.13.0@aar') { transitive = true; }
    compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; }

对于面临相同崩溃的人们,如果您正在使用这些依赖项/版本中的任何一个,请在评论中做出回应。也许我们可以挑出问题的依存关系。


6
也许我认为您的本机崩溃与以下问题相同。issuetracker.google.com/issues/37123764我的应用程序具有类似的错误,但我没有找到任何解决方案...我认为是android 7、7.1错误。
松原晃司(Koji Matsubara)2015年

3
我也看到了这个,完全相同的堆栈跟踪和完全相同的受影响设备列表!最新版本于5月15日发布,但是崩溃页面上有两行具有相同的“ tgkill”名称。
Orgmir

3
我还遇到了完全相同的问题,完全相同的堆栈跟踪,受影响的完全相同的设备,使用零本机库以及使用了位置和地图服务。也许与此有关?有人解决吗?
Cord Rehn

3
在过去的2个月中,我们有超过3万次此类tgkill崩溃影响了1.4万多名用户。在过去的几周中,我慢慢地删除了我们正在使用的所有第三方库并发布了分阶段发布,以查看是否可以找出导致这些崩溃的原因。除翻新,Okhttp,Jackson,毕加索,Firebase,Google Play服务,MultiDex和Apache Legacy外,所有内容均被删除。基于此主题,我们正在讨论释放1%的用户,同时删除地图。当前正在运行:“ com.google.android.gms:play-services-maps:11.0.1”
FinHead

3
我们发布了分阶段发布的内容,仅删除了“ com.google.android.gms:play-services-maps:11.0.1”。整个周末都看完之后,没有发生tgkill崩溃的情况。是的,此问题是由@Deo提到的地图引起的,并链接到下面的问题跟踪器。
FinHead

Answers:


33

查看您提供的转储可以提供一些线索:

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

这表明该错误发生在UI线程中。

libhwui.so x 6

这表明这是在某些图形/ ui相关代码的中间发生的。

libcutils.so-__android_log_assert

这是一个断言处理程序,因此很可能在中违反了某种断言libwhui

中止:

这是告诉O / S“异常”关闭的应用程序。

提高+ pthread_kill + tgkill: 这是操作系统(Android)关闭该应用程序。

您可以在此处查看一些调试此类崩溃的文档。

无论如何,恐怕很难对您提供的数据进行这种粗略和不精确的解释。

也许,如果您在将该错误附加到Android日志查看器时发现了该错误,则可能会有更多特定于应用程序的数据(甚至是assert函数通常会发出的错误消息)。

我的技巧是使用ACRA之类的东西来查找与该错误有关的所有详细信息,或者掌握受影响的设备并在将其连接到调试器时实际重现它。

祝好运!

编辑2017-06-16:我只想添加一些由Fco P 致谢的额外信息。显然,谷歌已决定对允许在最新版本的Android(7.x)中运行的本机库进行一些更改。更多详细信息在此链接中


提高+ pthread_kill + tgkill:这是操作系统(Android)关闭该应用程序。 用户杀死应用程序或自动从OS终止时会发生这种情况吗?
DevC

1
据我所知,这就是操作系统关闭它的故障过程。如果该应用程序“和平”终止,那将不是“杀死”操作。
Lennart Rolland'Mar 3'7

8

这是在这里报告的:https : //issuetracker.google.com/issues/37123764

重现:获得受影响的模式,启用开发人员模式,并将后台活动设置为0。还要启用“显示后台崩溃”。

然后打开该应用程序,然后再次关闭它:您将看到崩溃。


3

不在评论中(代表人数不足)。

在您列出的依赖项中,我们使用:

compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'

compile 'com.google.android.gms:play-services-maps:10.2.1'
compile 'com.google.android.gms:play-services-location:10.2.1'

与您的版本不同。我强烈怀疑play-services-maps包含该错误。

也许您像我们一样在viewpager中使用地图片段,松原晃司(Koji Matsubara)(https://issuetracker.google.com/issues/37123764)已经提到过许多有争议的人


您是否知道可以根据该错误报告来解决此问题?我没有看到任何解决方案或解决方法或任何东西。
hvaughan3

我遇到的问题会影响我的所有应用程序,但是我只使用支持库:注释,v4,appcompat和设计。
3c71 '18

3

我不知道,也许像我们这样的问题,也许有所不同,因为我看到依赖项中包括 carview。在这里分享希望对以后的人有用

我在Android 7.0和7.1下也遇到了问题

03-04 23:44:51.489 2173-2173/? A/DEBUG: Abort message: 'Error: Ambient Vertex Buffer overflow!!! used 420, total 284'
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eax 00000000  ebx 0000083b  ecx 00000857  edx 00000006
03-04 23:44:51.489 2173-2173/? A/DEBUG:     esi d19ff978  edi d19ff920
03-04 23:44:51.489 2173-2173/? A/DEBUG:     xcs 00000023  xds 0000002b  xes 0000002b  xfs 0000006b  xss 0000002b
03-04 23:44:51.489 2173-2173/? A/DEBUG:     eip f00a6bb9  ebp d19fee68  esp d19fee0c  flags 00000292
03-04 23:44:51.555 2173-2173/? A/DEBUG: backtrace:
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #00 pc 00000bb9  [vdso:f00a6000] (__kernel_vsyscall+9)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #01 pc 0007a2ec  /system/lib/libc.so (tgkill+28)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #02 pc 00075b35  /system/lib/libc.so (pthread_kill+85)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #03 pc 0002784a  /system/lib/libc.so (raise+42)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #04 pc 0001ee26  /system/lib/libc.so (abort+86)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #05 pc 0000fa65  /system/lib/libcutils.so (__android_log_assert+245)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #06 pc 00084356  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #07 pc 0003a5ba  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #08 pc 00083d04  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #09 pc 0008c5df  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #10 pc 0008e6d8  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #11 pc 0008e5d2  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #12 pc 000350fe  /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #13 pc 0001201f  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+207)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #14 pc 0006e53b  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+111)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #15 pc 00011873  /system/lib/libutils.so (_ZN13thread_data_t10trampolineEPKS_+259)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #16 pc 00075292  /system/lib/libc.so (_ZL15__pthread_startPv+210)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #17 pc 0002028e  /system/lib/libc.so (__start_thread+30)
03-04 23:44:51.555 2173-2173/? A/DEBUG:     #18 pc 0001e066  /system/lib/libc.so (__bionic_clone+70)

经过对gooogle的研究和搜索后,我替换为cardviewFramelayout此问题已解决


@ songoku1610,您好,您如何找出问题是由Cardview引起的。
Ran94 '18年

1
我尝试替换为该问题cardviewFramelayout然后解决了该问题,此问题仅发生在Android 7.x上
songoku1610

另一件事,上面的问题已被编辑,删除了等级上的文本独立性,因此我的回答because I see in dependencies have including carview似乎与问题不匹配
songoku1610

3

我在与您相同的设备的Google Play控制台中遇到了相同的问题。

就我而言,问题是在TextureView中,动画在单独的线程中具有锁定和解锁画布。

我将TextureView动画更改为适用于7和7.1 android的invalidate-onDraw动画,这很有帮助。


我的应用程序使用TextureView。您能否详细说明invalidate-onDraw动画
Shishir Shetty

@ShishirShetty我不再使用TextureView了,我重写了View,在onDraw方法中描述了所有动画,并每16毫秒(〜60fps)调用postInvalidateOnAnimation()方法
Sergei Belozerov

-1

我从运行Android 8.0的一个用户设备“ Huawei Honor 7X(HWBND-H)”的崩溃报告中看到此问题。由于在其他设备/操作系统版本中未出现该错误,因此我认为它可能已在操作系统更新中得到修复(该用户尚未使用,或者可能未提供该用户)。

backtrace:
  #00  pc 000000000006a808  /system/lib64/libc.so (tgkill+8)
  #01  pc 000000000001db50  /system/lib64/libc.so (abort+88)
  #02  pc 0000000000007f4c  /system/lib64/liblog.so (__android_log_assert+304)
  #03  pc 000000000004e314  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread10EglManager13createSurfaceEP13ANativeWindow+192)
  #04  pc 000000000004c790  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread14OpenGLPipeline10setSurfaceEPNS_7SurfaceENS1_12SwapBehaviorE+64)
  #05  pc 00000000000492b4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext10setSurfaceEPNS_7SurfaceE+140)
  #06  pc 000000000005123c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthreadL17Bridge_initializeEPNS1_14initializeArgsE+16)
  #07  pc 0000000000052fc4  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread22MethodInvokeRenderTask3runEv+24)
  #08  pc 0000000000053f1c  /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+348)
  #09  pc 0000000000011670  /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+280)
  #10  pc 00000000000be1e8  /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+136)
  #11  pc 00000000000671b8  /system/lib64/libc.so (_ZL15__pthread_startPv+36)
  #12  pc 000000000001eee4  /system/lib64/libc.so (__start_thread+68)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.