Estou vendo esta falha nativa com o seguinte rastreamento de pilha.
Isso acontece apenas no Android 7.0 e 7.1. Nada de novo foi adicionado ao aplicativo, que está em produção há alguns anos, mas com mais dispositivos sendo atualizados para o Nougat, esse travamento acontece com frequência e está se tornando um incômodo.
Qualquer conselho seria apreciado.
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)
Aqui está uma lista dos dispositivos afetados:
ATUALIZAÇÃO 18/07:
Ainda não consegui chegar à raiz disso, então decidi comprar um aparelho que apresentava mais ocorrências e tinha um preço razoável, que acabou sendo o Samsung Galaxy J3 versão 2017 com Android 7.0. Infelizmente, ainda não consigo reproduzir a falha.
Também fiz algumas melhorias no uso de memória do aplicativo em produção, mas a falha ainda está acontecendo.
Com base em todos os comentários e em minha própria pesquisa, parece estar relacionado a NDKs vinculados dinamicamente, mas não estou usando nenhum e é difícil descobrir se alguma das dependências usa.
Eu gostaria de compartilhar minhas dependências, seria ótimo se outras pessoas que enfrentam o mesmo problema pudessem chamar se estiverem usando uma das mesmas dependências - talvez possamos identificar o culpado desta forma.
// 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; }
Para as pessoas que enfrentam o mesmo travamento, responda nos comentários se estiver usando alguma dessas dependências / versões. Talvez possamos destacar a dependência do problema.
fonte
Respostas:
Olhando para o despejo que você forneceu, você encontra algumas pistas:
_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv
Isso indica que o erro ocorreu no thread de interface do usuário.
libhwui.so x 6
Isso indica que isso está acontecendo no meio de algum código relacionado a gráficos / interface do usuário.
libcutils.so - __android_log_assert
Este é um manipulador de declaração, então provavelmente algum tipo de declaração foi violado em
libwhui
.abortar:
Este é o aplicativo que informa ao O / S para desligar "de forma anormal".
raise + pthread_kill + tgkill: Este é o O / S (Android) fechando o aplicativo.
Você pode ver alguma documentação para depurar esses tipos de travamentos aqui .
De qualquer forma, receio que seja realmente difícil especular além dessa interpretação grosseira e imprecisa dos dados que você apresentou.
Talvez se você detectou o bug enquanto ele estava anexado ao visualizador de log do Android, você teria mais dados específicos do aplicativo (ou até mesmo uma mensagem de erro que a função assert geralmente exibe).
Minha dica é usar algo como ACRA para rastrear todos os detalhes relativos ao erro, ou obter um dispositivo afetado e reproduzi-lo enquanto conectado a um depurador.
Boa sorte!
EDITAR 2016-06-16 : Eu só quero adicionar algumas informações extras, um comentário de cortesia de Fco P. Aparentemente, o Google decidiu fazer algumas mudanças nas bibliotecas nativas que podem ser executadas nas versões mais recentes do Android (7.x). Mais detalhes estão neste link .
fonte
Isso é relatado aqui: https://issuetracker.google.com/issues/37123764
Para reproduzir: Obtenha um modo afetado, habilite o modo de desenvolvedor e defina as atividades em segundo plano como 0. Habilite também "mostrar travamentos em segundo plano".
Em seguida, abra o aplicativo e feche-o novamente: você verá a falha.
fonte
Não está nos comentários (representação insuficiente).
Das dependências que você listou, usamos:
versões diferentes da sua. Tenho fortes suspeitas de que play-services-maps contém o bug.
Talvez você use fragmentos de mapa no viewpager como fazemos e muitas pessoas em questão já mencionadas por Koji Matsubara ( https://issuetracker.google.com/issues/37123764 )
fonte
Não sei, talvez esse problema parecido com o nosso, talvez diferente, pois vejo nas dependências tem inclusive
carview
. Compartilhe aqui espero que seja útil para alguém no futuroTambém enfrentei problemas no Android 7.0 e 7.1 abaixo
Depois de pesquisar e pesquisar no gooogle, troquei
cardview
porFramelayout
então esse problema foi resolvidofonte
cardview
porFramelayout
então esse problema foi resolvido, esse problema só acontece no Android 7.xbecause I see in dependencies have including carview
pareça não corresponder à perguntaEu tive o mesmo problema no console do Google Play para os mesmos dispositivos que você.
No meu caso, o problema estava em TextureView com animação em thread separada com tela de bloqueio e desbloqueio.
Mudei a animação TextureView para a animação invalidate-onDraw para Android 7 e 7.1 e isso ajudou.
fonte
Estou vendo este problema em um relatório de falha no dispositivo de um usuário - 'Huawei Honor 7X (HWBND-H)' - executando o Android 8.0. Uma vez que não está ocorrendo em campo para outros dispositivos / versões do sistema operacional, meu pensamento é que já pode ter sido corrigido nas atualizações do sistema operacional (que este usuário não pegou, ou possivelmente a Huawei não forneceu).
fonte