Error loading RS jni library: java.lang.UnsatisfiedLinkError

在使用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.** { *; }

這個問題就解決了!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章