Colisiones nativas recibidas en dispositivos Samsung sólo con las versiones Lollipop 5.0 y 5.1

Desde hace 2 meses, hemos comenzado a recibir bloqueos nativos en nuestra consola de desarrolladores sólo para algunos dispositivos Samsung.

Aquí está el rastro del accidente

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'samsung/ha3gjv/ha3g:5.0/LRX21V/N9000QXXUEBOG3:user/release-keys' Revision: '11' ABI: 'arm' pid: 10422, tid: 10478, name: AsyncTask #2 >>> com.sample.app <<< signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c r0 131413a0 r1 131413a0 r2 b1687070 r3 00262827 r4 00000349 r5 131413a0 r6 00000000 r7 00000002 r8 131412c0 r9 af071800 sl 87783218 fp 13141360 ip 000031d0 sp 9530e8c0 lr 7446c91f pc a0a83596 cpsr 000f0030 backtrace: #00 pc 001bc596 /data/dalvik-cache/arm/data@app@com.sample.app-2@base.apk@classes.dex #01 pc 0008091d /system/framework/arm/boot.oat 

Y aquí está la lista de dispositivos donde se han recibido fallos hasta la fecha –

 Galaxy S6 (zeroflte) Galaxy S6 Edge+ (zenltevzw) Galaxy A5(2016) (a5xelte) Galaxy S5 Neo (s5neolte) Galaxy S6 Edge (zerolte) Galaxy S6 (zerofltetmo) Galaxy Note3 (ha3g) Galaxy J7 (j7elte) Galaxy Note4 (trelte) Galaxy S5 (k3g) Galaxy Alpha (slte) 

¿Alguna idea de por qué está sucediendo?

Aquí está build.gradle

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.test" minSdkVersion 14 targetSdkVersion 22 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile files('libs/okhttp-2.4.0.jar') compile files('libs/okhttp-urlconnection-2.4.0.jar') compile files('libs/okio-1.4.0.jar') compile files('libs/mediaplayersdk.jar') compile 'com.google.android.gms:play-services-analytics:8.4.0' compile 'com.google.android.gms:play-services-ads:8.4.0' compile 'com.android.support:appcompat-v7:23.1.0' } 

2 Solutions collect form web for “Colisiones nativas recibidas en dispositivos Samsung sólo con las versiones Lollipop 5.0 y 5.1”

De acuerdo con el fallo nativo de Android iniciando desde /system/framework/arm/boot.oat, este error se produce en algunos dispositivos de Samsung cuando se apila con zipaligned usando Zopfli.

De acuerdo con tu build.gradle estás usando buildToolsVersion "23.0.0" así que diría que tu apk es zipaligned usando Zopfli y esta es la fuente del problema que estás encontrando (Zopfli fue agregado en la versión 21.0.0 ).

Tenga en cuenta que cuando genera su apk con Build -> Generate Signed APK su apk es automáticamente zipaligned. De la documentación :

Zipalign es una herramienta de alineación de archivos que proporciona una optimización importante a los archivos de aplicaciones de Android (.apk)

Para solucionarlo, puede evitar la adición automática de zipalign en zipAlignEnabled false a la sección de release de su build.gradle :

 release { //... zipAlignEnabled false } 

Entonces, necesitas generar tu apk nuevamente (puedes comprobar que tu apk no está zipaligned ejecutando zipalign -c -v 4 yourapk.apk . zipalign -c -v 4 yourapk.apk Verification FAILED ) y luego zipalign manualmente el apk usando las instrucciones zipalign , evitando el -z

 zipalign -f -v 4 yourapk.apk yourzipalignedapk.apk 

Otra opción es cambiar la buildToolsVersion a, por ejemplo, 20.0.0 (la herramienta zipalign en esta versión no incluye Zopfli) pero esto no se recomienda (De la documentación ):

Siempre debe mantener actualizado su componente Build Tools descargando la última versión usando el Android SDK Manager. De forma predeterminada, el SDK de Android utiliza la versión descargada más reciente de las herramientas de compilación. Si sus proyectos dependen de versiones anteriores de las herramientas de compilación, SDK Manager le permite descargar y mantener versiones separadas de las herramientas para usar con esos proyectos.

He encontrado la solución adecuada aquí . Mediante el uso

  -keep class !android.support.v7.internal.view.menu.**,android.support.v7.** {*;} 

en lugar de

  -keep class android.support.v7.** {*;} 
  • ¿Cómo puedo hacer que mi aplicación Android aparezca en modo de ahorro de energía ultra
  • MediaPlayer error (1, -1004) también conocido como MEDIA_ERROR_IO intentando transmitir música en Samsung S3
  • Adición del soporte de ventanas múltiples de Samsung a la aplicación de Android
  • Cámara: la función setDisplayOrientation no funciona para Samsung Galaxy ACE con Android 2.3.6
  • Color de estilo CSS ineficaz en estrellas (& # 9733;) en Samsung con Android 4.4 KitKat
  • Samsung Galaxy S5 speakerphone \ microphone issue
  • Cómo obtener controlador USB OEM para Samsung Galaxy SIII con el número de modelo GT-I9300
  • MP3 streaming en C # .NET 4.5.1 MVC 5.2.2 en Samsung 6S
  • Android: Samsung "Smart Manager" aplicación de elevar las advertencias
  • Apk es rechazado de Samsung Apps
  • El dispositivo Samsung con Android 5.0 cambia el color de la barra de progreso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.