use*_*231 10 crash android native samsung-mobile android-5.0-lollipop
自从过去2个月以来,我们已经开始在我们的开发者控制台中仅针对某些三星设备接收本机崩溃.
这是崩溃跟踪
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
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
Run Code Online (Sandbox Code Playgroud)
以下是迄今为止收到崩溃的设备列表 -
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)
Run Code Online (Sandbox Code Playgroud)
关于它为什么会发生的任何想法?
这是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'
}
Run Code Online (Sandbox Code Playgroud)
根据从/system/framework/arm/boot.oat启动的Android本机崩溃,当使用Zopfli对apk进行zipaligned时,在某些三星设备上会产生此错误.
根据build.gradle你的使用buildToolsVersion "23.0.0",我会说你的apk是使用Zopfli zipaligned,这是你找到的问题的来源(Zopfli在版本中添加21.0.0).
请注意,使用Build -> Generate Signed APKapk 生成apk时会自动进行zipaligned.从文档:
zipalign是一个存档对齐工具,可为Android应用程序(.apk)文件提供重要的优化
要解决此问题,您可以避免自动zipalign添加zipAlignEnabled false到release您的部分build.gradle:
release {
//...
zipAlignEnabled false
}
Run Code Online (Sandbox Code Playgroud)
然后,你需要再次生成你的apk(你可以检查你的apk是不是zipaligned运行zipalign -c -v 4 yourapk.apk.它将输出Verification FAILED)然后使用zipalign指令手动zipalign apk ,避免-z选项.
zipalign -f -v 4 yourapk.apk yourzipalignedapk.apk
Run Code Online (Sandbox Code Playgroud)
其他选项是更改buildToolsVersion为,例如20.0.0(此版本中的zipalign工具不包括Zopfli)但不建议这样做(从文档中):
您应该始终使用Android SDK Manager下载最新版本来更新Build Tools组件.默认情况下,Android SDK使用最新下载的Build Tools版本.如果您的项目依赖于较早版本的Build Tools,则SDK Manager允许您下载和维护用于这些项目的工具的单独版本.
| 归档时间: |
|
| 查看次数: |
2898 次 |
| 最近记录: |