minifiedEnabled 导致渲染脚本崩溃 >Kitkat
minifiedEnabled leads to renderscript crash >Kitkat
最新版本的 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'
}
}
为版本启用了缩小,并且任何签名的 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"
还有什么我可能遗漏的吗?是缩小版吧?有没有办法安全地让大部分脚本的最小化工作(额外的膨胀不是很棒)?
2016 年 12 月问题仍然存在,但 proguard 规则有效:
-keep class com.photoembroidery.tat.olsennoise.** {*;}
-keep class android.support.v8.renderscript.** {*;}
停止在 KitKat 上崩溃。
使用AndroidX你需要
-keep class androidx.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'
}
}
为版本启用了缩小,并且任何签名的 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"
还有什么我可能遗漏的吗?是缩小版吧?有没有办法安全地让大部分脚本的最小化工作(额外的膨胀不是很棒)?
2016 年 12 月问题仍然存在,但 proguard 规则有效:
-keep class com.photoembroidery.tat.olsennoise.** {*;}
-keep class android.support.v8.renderscript.** {*;}
停止在 KitKat 上崩溃。
使用AndroidX你需要
-keep class androidx.renderscript.** { *; }