minifiedEnabled导致renderscript崩溃> Kitkat

时间:2016-08-27 22:01:50

标签: android proguard android-support-library renderscript

最近版本的renderscriptSupport修复了renderscript到版本11.我在适当的设备和模拟器上测试了这些。但是,在生产之后,每个运行KitKat或更低版本的人都会崩溃。

defaultConfig {
    applicationId "com.photoembroidery.tat.olsennoise"
    minSdkVersion 11
    targetSdkVersion 24
    versionCode 9
    versionName "1.6bRS"

    renderscriptTargetApi 23
    renderscriptSupportModeEnabled true
}

它构建的脚本是:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

启用了minify版本,任何已签名的APK都会崩溃。而当我改为:

buildTypes {
    release {
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

已签名的APK已停止在Kitkat设备上崩溃。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.photoembroidery.tat.olsennoise/com.photoembroidery.tat.olsennoise.OlsenNoise}: android.support.v8.renderscript.m: Error loading RS jni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.photoembroidery.tat.olsennoise-1/lib/arm/librsjni.so" Support lib API: 2301
Caused by: android.support.v8.renderscript.m: Error loading RS jni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.photoembroidery.tat.olsennoise-1/lib/arm/librsjni.so" Support lib API: 2301

java.lang.NoSuchMethodError: no static or non-static method "Landroid/support/v8/renderscript/RenderScript;.nDeviceDestroy(J)V"

还有什么我可能会遗失的吗?这是缩小的权利?有没有什么可以安全地获得大部分剧本的大部分缩小工作(额外的大量膨胀是不是很棒)?

2 个答案:

答案 0 :(得分:4)

问题持续存在2016年12月,但是规则有效:

-keep class com.photoembroidery.tat.olsennoise.** {*;}
-keep class android.support.v8.renderscript.** {*;}

停止在KitKat上崩溃。

答案 1 :(得分:1)

使用您需要的AndroidX

-keep class androidx.renderscript.** { *; }