在使用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.** { *; }
這個問題就解決了!!!