2016-04-08 21 views
7

Seit zwei Monaten erhalten wir native Abstürze in unserer Entwicklerkonsole nur für einige Samsung-Geräte. HierNative Abstürze, die in Samsung-Geräten nur mit Lollipop 5.0- und 5.1-Versionen empfangen wurden

ist der Absturz Spur

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
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/[email protected]@[email protected]@classes.dex 
    #01 pc 0008091d /system/framework/arm/boot.oat 

Und hier ist die Liste der Geräte, bei denen Abstürze bis heute eingegangen -

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) 

Alle Ideen, warum es geschieht? Hier

ist 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' 
} 
+0

sein, etwas kann diesem Zusammenhang Durch die Verwendung .. http://developer.samsung.com/forum/board/thread/view.do?boardName=General&messageId= 280930 –

+0

Danke Sunil, aber die von dir erwähnte scheint kein Absturz zu sein – user669231

+0

Hast du zipalign benutzt? – Alexander

Antwort

4

Nach Android native crash initiating from /system/framework/arm/boot.oat diese Fehlern auf einigen Samsung-Geräten erzeugt werden, wenn apk Zipalign optimiert wird mit Zöpfli.

Nach Ihrer build.gradle Sie verwenden buildToolsVersion "23.0.0" so würde ich sagen, dass Ihr apk Zipalign optimiert wird mit Zöpfli und dies ist die Ursache des Problems, das Sie finden (Zöpfli wurde in Version 21.0.0 hinzugefügt).

Beachten Sie, dass wenn Sie Ihre apk mit Ihre apk automatisch zipaligned generieren. Von the documentation:

Zipalign ist ein Archiv Alignment-Tool, die wichtige Optimierung für Android-Anwendung (APK) -Dateien

Um es zu lösen bietet, können Sie automatisch Zipalign vermeiden auf zipAlignEnabled false zum release Abschnitt Hinzufügen von Ihre build.gradle:

release { 
    //... 
    zipAlignEnabled false 
} 

Dann müssen Sie Ihre apk wieder erzeugen (können Sie überprüfen, ob Ihre apk 01 läuft nicht Zipalign optimiert wird. Es wird ausgegeben Verification FAILED) und dann manuell die apk mit the zipalign instructions zipalign, unter Vermeidung der -z Option.

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

Andere Möglichkeit ist die buildToolsVersion zu ändern zum Beispiel 20.0.0 auf, (die Zipalign Werkzeug in dieser Version doen't umfassen Zöpfli), aber dies wird nicht empfohlen (Von the documentation):

Sie sollten Halten Sie die Build Tools-Komponente immer auf dem neuesten Stand, indem Sie die neueste Version mit dem Android SDK Manager herunterladen. Standardmäßig verwendet das Android SDK die neueste heruntergeladene Version der Build-Tools. Wenn Ihre Projekte von älteren Versionen der Build-Tools abhängen, können Sie mit dem SDK-Manager separate Versionen der Tools für die Verwendung mit diesen Projekten herunterladen und verwalten.

+0

Danke Antonio für die ausführliche Antwort. Werde das versuchen und bestätigen, wenn dies das Problem löst. Allerdings bezweifle ich, dass ich auch mehrere Android 5.0 & Android 5.1-Geräte habe, aber das Problem nicht reproduzieren konnte. Also kann es sein, dass das Problem zufällig passiert und nicht auf allen Geräten? – user669231

+0

Ja, ich denke, dass das Problem zufällig oder nur auf einigen Geräten auftreten kann. Diese Art von Problemen sind sehr ärgerlich, weil sie wirklich schwer zu verfolgen sind. Bitte lassen Sie mich wissen, wenn Sie Fortschritte machen – antonio

+0

Haben Sie Ihr Problem endlich gelöst? – antonio

0

Ich fand die richtige Lösung here.

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

statt

-keep class android.support.v7.** {*;}