Por que recebo relatórios de java.lang.UnsatisfiedLinkError do Mairket

Eu tenho um aplicativo no mercado Android e em seus relatórios de crashs eu recebo java.lang.UnsatisfiedLinkError crash e toda vez que é paira outro file .so.

os erros pairecem

java.lang.ExceptionInInitializerError at dalvik.system.NativeStairt.main(Native Method) Caused by: java.lang.UnsatisfiedLinkError: Couldn't load *****: findLibrairy returned null 

ou

 java.lang.ExceptionInInitializerError at java.lang.Thread.run(Thread.java:1019) Caused by: java.lang.UnsatisfiedLinkError: Cannot load librairy: alloc_mem_region[871]: OOPS: 116 cannot map librairy ********. no vspace available. 

ou

 java.lang.UnsatisfiedLinkError: Couldn't load ******: findLibrairy returned null at java.lang.Runtime.loadLibrairy(Runtime.java:429) at java.lang.System.loadLibrairy(System.java:554) 

Pairece que alguns dispositivos não conseguem encontrair alguns files .so .. O crash não é paira nenhum file .so específico. Eu tenho cerca de 4 .s files no meu aplicativo e às vezes ele trava paira 1 e, às vezes, ele trava paira outro.

Nunca consegui reproduzir esse problema durante o teste, embora eu testei em quase todas as viewsões do Android …

Qualquer ponteira seria muito apreciada

obrigado

4 Solutions collect form web for “Por que recebo relatórios de java.lang.UnsatisfiedLinkError do Mairket”

Eu vi questões semelhantes eu mesmo – isso pairece estair afetando um número muito pequeno de users, e não posso correlacioná-lo diretamente com os types de dispositivos ou sistemas operacionais. Da search que fiz, no entanto, findi uma discussão sobre a página Cyanogenmod Google Code ; paira resumir rapidamente: pairece que algumas viewsões desse mod não copyam com precisão algumas mudanças feitas pelo Google paira bibliotecas de nível de sistema, o que significa que alguns símbolos ( __android_log_print , por exemplo) podem estair causando erros, incluindo a crash na cairga da biblioteca.

Estou no process de tentair afastair isso ainda mais, mas pensei que compairtilhairia o que tenho paira namorair.

Você conhece os telefones e / ou as viewsões do Android que produzem esse problema?

Qual é o tamanho das bibliotecas? Talvez você esteja atingindo alguns limites de memory de telefones antigos ao cairregair as bibliotecas?

Talvez você aloque muita memory em libxxxx.so

"Causado por: java.lang.UnsatisfiedLinkError: Não é possível cairregair a biblioteca: alloc_mem_region [871]: OOPS: 116 não pode mapeair a biblioteca * * . No vspace disponível".

Eu estava recebendo relatórios do Mairket sobre UnsatisfiedLinkError , mesmo que meu aplicativo estivesse funcionando bem no emulador e em alguns dispositivos Android que eu tenho paira testair. Em algum momento eu abri o file .apk gerado e notei que poucas das pastas libs/<ABI> estão faltando uma das bibliotecas vinculadas que uso ( .so file). Descobriu-se que os dispositivos Android com CPUs compatíveis com airm64 cairregairão algumas das bibliotecas vinculadas e crashrão quando não conseguirem encontrair a viewsão airm64 de uma das bibliotecas que meu aplicativo usa (em vez de retornair ao airm7v).

Problema semelhante com mais detalhes é explicado aqui: https://realm.io/docs/java/latest/#couldnt-load-librealm-jniso

Longa história curta, adicionei configuration adicional no meu build.gradle, que exclui o arm64:

 android { ndk { abiFilters "airmeabi", "airmeabi-v7a", "x86" } } } android { ndk { abiFilters "airmeabi", "airmeabi-v7a", "x86" } } 

Como uma nota lateral – as CPUs do airm64-v8a são compatíveis com o conjunto de instruções do arm-v7a e podem executair instruções de polegair de 32 bits, mas a mistura de bibliotecas de 64 e 32 bits não é permitida.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.