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와 관련된 것 같지만 종속성이 있는지 확인하기가 어렵습니다.

나는 내 의존성을 공유하고 싶습니다. 같은 문제에 직면 한 다른 사람들이 같은 의존성 중 하나를 사용하고 있는지 호출 할 수 있다면 좋을 것입니다. 아마도 우리는이 방법으로 범인을 찾을 수 있습니다.

// 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

3
또한 정확히 동일한 스택 추적과 영향을받는 장치의 동일한 목록이 표시됩니다! 최신 버전은 5 월 15 일에 게시되었지만 충돌 페이지에 "tgkill"이름이 같은 두 줄이 있습니다.
Orgmir

3
나는 또한 정확히 동일한 문제, 정확히 동일한 스택 추적, 영향을받는 동일한 장치, 제로 기본 라이브러리 사용, 위치 및지도 서비스 사용을 경험하고 있습니다. 아마도 그것에 묶여 있습니까? 누구든지 수정이 있습니까?
Cord Rehn

3
지난 2 개월 동안, 우리는 14,000 명 이상의 사용자에게 영향을 미치는 이러한 tgkill 충돌 중 3 만 건이 넘었습니다. 지난 몇 주 동안 사용중인 타사 라이브러리를 천천히 제거하고 단계적 출시를 출시하여 이러한 충돌의 원인을 추적 할 수 있는지 확인했습니다. Retrofit, Okhttp, Jackson, Picasso, Firebase, Google Play Services, MultiDex 및 Apache Legacy를 제외한 모든 항목이 제거됩니다. 이 스레드를 기반으로, 우리는지도를 제거하고 사용자의 1 %에게 릴리스하는 것에 대해 논의하고 있습니다. 현재 실행 'com.google.android.gms : 플레이 서비스 - 매핑 : 11.0.1'
FinHead

3
'com.google.android.gms : play-services-maps : 11.0.1'만 제거하는 단계적 출시를 출시했습니다. 주말 내내 시청 한 후 tgkill 충돌 사례가 없었습니다. 예,이 문제는 @Deo가 언급하고 아래 문제 추적기에 연결된지도로 인해 발생합니다.
FinHead

답변:


33

제공 한 덤프를 살펴보면 몇 가지 단서가 제공됩니다.

_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv

이는 UI 스레드에서 오류가 발생했음을 나타냅니다.

libhwui.so x 6

이것은 일부 그래픽 / UI 관련 코드 중간에서 발생하고 있음을 나타냅니다.

libcutils.so-__android_log_assert

이것은 assert 핸들러이므로에서 어떤 종류의 assert가 위반되었을 가능성이 높습니다 libwhui.

중단 :

O / S에 "비정상적으로"종료하라고 알려주는 응용 프로그램입니다.

raise + pthread_kill + tgkill : 앱을 종료하는 O / S (Android)입니다.

여기에서 이러한 종류의 크래시를 디버깅하기위한 문서를 볼 수 있습니다 .

어쨌든, 나는 당신이 제시 한 데이터에 대한 거칠고 부정확 한 해석을 넘어서 추측하기가 정말 어렵습니다.

Android 로그 뷰어에 버그를 첨부하는 동안 버그를 발견했다면 더 많은 애플리케이션 별 데이터 (또는 assert 함수가 일반적으로 표시하는 오류 메시지)를 갖게 될 것입니다.

내 팁은 ACRA 와 같은 것을 사용 하여 오류와 관련된 모든 세부 정보를 추적하거나 영향을받는 장치를 잡고 실제로 디버거에 연결되어있는 동안 재현하는 것입니다.

행운을 빕니다!

수정 2017-06-16 : Fco P의 추가 정보 예의 주석을 추가하고 싶습니다. 분명히 Google은 최신 버전의 Android (7.x)에서 실행할 수있는 기본 라이브러리를 일부 변경하기로 결정했습니다. 자세한 내용은 이 링크에 있습니다.


raise + pthread_kill + tgkill : 앱을 종료하는 O / S (Android)입니다. 사용자가 앱을 종료 할 때 발생합니까 아니면 OS에서 자동으로 발생합니까?
DevC

1
그것은 내가 아는 한 오작동 프로세스를 종료하는 O / S입니다. 앱이 "평화롭게"종료되면 "kill"작업이 아닙니다.
Lennart Rolland

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에 버그가 있다는 강한 의심이 있습니다.

아마도 우리가하는 것처럼 뷰 페이저에서지도 조각을 사용하고 있고 Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )가 이미 언급 한 문제의 많은 사람들이 사용하고있을 것입니다.


버그 보고서를 기반으로이를 방지하기위한 해결 방법을 알고 있습니까? 해결책이나 해결 방법 등이 보이지 않습니다.
hvaughan3

내 모든 앱에 영향을 미치는 동일한 문제가 있지만 주석, v4, appcompat 및 디자인과 같은 지원 라이브러리 만 사용합니다.
3c71

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)

저렴한 비용으로 Google에 대한 연구 및 검색 후, 나는 대체 cardview에 의해 Framelayout이 문제가 해결 된 후,


@ songoku1610 안녕하세요. Cardview로 인해 문제가 발생한 것을 어떻게 알았습니까?
Ran94

1
나는 대체를 시도 cardview하여 Framelayout,이 문제는 안드로이드 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 나는 (초당 60 프레임 ~) 된 onDraw 방법과 전화 postInvalidateOnAnimation () 메소드 매 16 밀리 초 모든 애니메이션을 설명, 더 이상 내가보기를 오버라이드 (override) TextureView를 사용하지 않는
세르게이 Belozerov

-1

Android 8.0을 실행하는 한 사용자의 기기 인 'Huawei Honor 7X (HWBND-H)'의 충돌 보고서에서이 문제가 표시됩니다. 다른 장치 / OS 버전의 경우 현장에서 발생하지 않기 때문에 OS 업데이트에서 이미 수정되었을 수 있습니다 (이 사용자가 선택하지 않았거나 Huawei가 제공하지 않았을 수 있음).

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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.