Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅使用棒棒糖5.0和;5.1版本_Android_Crash_Android 5.0 Lollipop_Native_Samsung Mobile - Fatal编程技术网

Android 仅使用棒棒糖5.0和;5.1版本

Android 仅使用棒棒糖5.0和;5.1版本,android,crash,android-5.0-lollipop,native,samsung-mobile,Android,Crash,Android 5.0 Lollipop,Native,Samsung Mobile,自过去2个月以来,我们开始在开发人员控制台中仅接收一些三星设备的本机崩溃 这是坠机痕迹 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'samsung/ha3gjv/ha3g:5.0/LRX21V/N9000QXXUEBOG3:user/release-keys' Revision: '11' ABI: 'arm' pid: 10422, tid: 10478, name: A

自过去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
你知道为什么会这样吗

这是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'
}
据了解,当使用Zopfli对apk进行zipaling时,一些三星设备上会产生此错误

根据您的
build.gradle
您使用的是
buildToolsVersion“23.0.0”
,因此我想说您的apk是使用Zopfli进行Zipaling的,这就是您发现的问题的根源(Zopfli是在
21.0.0
版本中添加的)

请注意,当您使用
Build->generate Signed apk
生成apk时,您的apk将自动zipaligned。发件人:

zipalign是一个归档对齐工具,它为Android应用程序(.apk)文件提供了重要的优化

要解决此问题,您可以避免自动zipalign将
zipAlignEnabled false
添加到
build.gradle的
release
部分:

release {
    //...
    zipAlignEnabled false
}
然后,您需要再次生成apk(您可以检查您的apk是否在运行
zipaling-c-v4 yourapk.apk
。它将输出
验证失败
),然后使用手动zipaling对apk进行zipaling,避免使用
-z
选项

zipalign -f -v 4 yourapk.apk yourzipalignedapk.apk
另一个选项是将
buildToolsVersion
更改为,例如
20.0.0
(此版本中的Zipalin工具不包括Zopfli),但不建议这样做(从):

您应该始终通过使用Android SDK管理器下载最新版本来更新构建工具组件。默认情况下,Android SDK使用最新下载版本的构建工具。如果您的项目依赖于较旧版本的构建工具,则SDK管理器允许您下载和维护单独版本的工具,以便与这些项目一起使用


我找到了正确的解决办法。 利用

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

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

可能与此有关。。谢谢Sunil,但是你提到的那个似乎不是你使用的zipalign的本地CrashId?我通过Android Studio选项生成APK,Build->generate Signed APK你可以发布你的
Build.gradle
?谢谢Antonio的详细回答。将尝试此操作并确认此操作是否解决问题。然而,我有一个疑问,我也有多台安卓5.0和安卓5.1设备,但无法重现这个问题。那么,问题可能是随机发生的,而不是在所有设备上发生的吗?是的,我认为问题可能是随机发生的,也可能只是在某些设备上发生的。这类问题很烦人,因为它们很难追踪。请告诉我,如果你做了什么progress@user669231关于这个话题有什么新闻吗?有帮助吗?如果您能给出一些见解并接受这个答案(如果有帮助的话),那就太好了。@antonio想知道为什么zipalign手动可以解决这个问题?有什么区别吗?@antonio和zipaling“-z”代表什么??找不到关于它的任何信息。编辑:-z:使用Zopfli重新压缩
 -keep class android.support.v7.** {*;}