在使用renderScript实现高斯模糊效果时,遇到了这个问题:
Error loading RS jni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in “/data/app/cc.redhome.hduin.android-1/lib/arm/librsjni.so” Support lib API: 2301
大致意思就是:加载不到对应的.so文件
解决方案:
1、导入RenderScript Support Library,根据官方文档具体如下:
https://developer.android.com/guide/topics/renderscript/compute.html
buildToolsVersion 23.0.3
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
注意:
1、buildToolsVersion要在23.0.3以上,因为在23.0.3以上修复了library支持的问题。
2、renderscriptTargetApi: We recommend you set this value to the lowest API level able to provide all the functionality you are using.
尽可能设置renderscriptTargetApi的值为最低API,以便支持全部功能。
3、renderscriptSupportModeEnabled 值设为 true。
2、在Android Studio安装目录下找到librsjni.so和libRSSupport.so两个文件。
我的是在\sdk\build-tools\25.0.0\renderscript\lib\packaged目录下,然后把armeabi-v7a、mips、x86文件夹拷贝到工程的libs文件夹下。
3、在proguard-rules.pro中加入混淆规则
#RenderScript
-keepclasseswithmembernames class * {
native <methods>;
}
-keep class android.support.v8.renderscript.** { *; }
这个问题就解决了!!!