当前位置: 首页 > 知识库问答 >
问题:

仅使用Lollipop 5.0在三星设备中收到的本机崩溃

上官季
2023-03-14

自过去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

这是迄今为止收到崩溃的设备列表-

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)

你知道为什么会这样吗?

这是构建。格拉德尔

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个答案

皇甫聪
2023-03-14

我在这里找到了正确的解决方案。通过使用

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

而不是

 -keep class android.support.v7.** {*;}
苍宝
2023-03-14

根据从/系统/框架/arm/boot启动的Android本机崩溃。oat使用Zopfli对apk进行zipaling时,某些三星设备上会产生此错误。

根据您的构建。gradle您使用的是buildToolsVersion“23.0.0”,所以我想说您的apk是使用Zopfli进行Zipaling的,这就是您发现的问题的根源(Zopfli是在21.0.0版中添加的)。

请注意,当您使用Build生成apk时-

zipalign是一种归档对齐工具,可对Android应用程序(.apk)文件进行重要的优化

要解决这个问题,您可以避免自动将zipaign添加到构建的发布部分。格拉德尔:

release {
    //...
    zipAlignEnabled false
}

然后,您需要再次生成apk(您可以检查您的apk是否未在运行zipalign-c-v 4 yourapk时进行zipalign。apk。它将输出验证失败的apk),然后使用zipalign指令手动zipalign apk,避免使用z选项。

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

其他选项是将buildToolsVersion更改为,例如20.0.0(此版本中的ZipAlin工具不包括Zopfli),但不建议这样做(从文档中):

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

 类似资料:
  • 好的,所以这段代码在任何其他设备上都能正常工作,但在三星设备上会崩溃。我似乎不知道为什么,但我知道如果我使用TextView,它不会崩溃。但问题是,我需要这个字段的EditText,它可以包含多个链接。我花了一天的时间寻找一个没有用的解决方案,所以我想我应该在这里发布: 注意:这在我测试的Nexus和Motorola设备上似乎很有效:我想三星在处理EditText框中的链接时,有没有遗漏一些解决方

  • 问题内容: 我需要编写一个称为like的方法。我们需要创建一个迭代方法和一个递归方法(没有任何迭代)。输出需要如下所示: 这段代码可用于迭代,但是我无法使其适应递归。 我应该注意,您不能使用任何类级别的变量或任何外部方法。 问题答案: 请注意,在迭代方法中,您有两个计数器:第一个是您所处的行,第二个是您所处的行的位置。您可以创建一个采用两个参数并将其用作嵌套计数器和的递归函数。在递减x直到其达到0

  • 在React Native中,我为所有使用Rubik字体的文本定义了字体系列,但某些设备(三星 我不知道为什么有时有些文本看起来像是用自定义设备字体覆盖 环境: 操作系统:macOS HighSierra 节点:9.3.0 纱线:1.3.2 npm:5.7.0 守望者:4.9.0 包: react-native: “^0.47.2, 反应: “^16.0.0-alpha.12, react-nat

  • 我想写一个应用程序,将存储使用它的人的指纹

  • 我在Crashlytics上得到了这份坠机报告: 我看过这篇文章,但我不能在我的自定义课上做。 我怎样才能解决这个问题? StackTrace: