将RenderScript与支持库一起使用时,我在Motorola iRazr(Android 4.1.2)上出现此错误
Error loading RS jni library: java.lang.UnsatisfiedLinkError: Couldn't load RSSupport: findLibrary returned null
Samsung Galaxy S3上的一切正常。
Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);
RenderScript rs = RenderScript.create(ctx);
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
theIntrinsic.setRadius(BLUR_RADIUS);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
我使用的支持库jar是
build-tools/19.0.1/renderscript/lib/renderscript-v8.jar
非常感谢任何帮助。
编辑:
我在libs文件夹中复制了so文件,并验证了so文件是否在设备上的data / data / lib文件夹中。
librsjni.so 和 libRSSupport.so 存在于设备上......
编辑:
更详细的错误:
02-26 16:17:42.311: D/dalvikvm(16985): Trying to load lib /data/data/de.proximity.hero/lib/libRSSupport.so 0x42616b70
02-26 16:17:42.321: D/dalvikvm(16985): Added shared lib /data/data/de.proximity.hero/lib/libRSSupport.so 0x42616b70
02-26 16:17:42.321: D/dalvikvm(16985): No JNI_OnLoad found in /data/data/de.proximity.hero/lib/libRSSupport.so 0x42616b70, skipping init
02-26 16:17:42.321: D/dalvikvm(16985): Trying to load lib /data/data/de.proximity.hero/lib/librsjni.so 0x42616b70
02-26 16:17:42.351: E/RenderScript_jni(16985): Error loading RS jni library: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 141 cannot locate '__strlen_chk'...
答案 0 :(得分:5)
您不必使用库build-tools/19.0.1/renderscript/lib/renderscript-v8.jar
(删除它),因为谷歌团队说here,您只需要在project.properties
文件中包含以下内容:
renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=19.0.3
我希望这会对你有所帮助。
答案 1 :(得分:4)
According to Tim Murray(负责Android renderscript支持的人)这将在下一个构建工具版本(可能是19.1.1)中修复。
答案 2 :(得分:3)
由于目前没有解决方案,我们决定不使用renderscript。 如果这些问题得到解决,可能会有未来的更新。
答案 3 :(得分:3)
我知道OP不再有这个问题,但我只是想对其他任何碰到这个问题的人发表评论。在这种情况下OP可能只有armeabi的libRSSupport.so而不是x86,这就是为什么它可以在S3上运行而不是RAZR" i"在英特尔芯片组上运行的系列设备。
答案 4 :(得分:3)
答案 5 :(得分:1)
您必须将JNI库包含在应用程序包的一部分中。请检查您是否意外剥离它们。对于应用程序中的每个用户脚本,您应该有libRSSupport.so,librsjni.so以及librs..so。这些应存在于任何ARM设备的lib / armeabi-v7a目录下。 x86 / mips也应该有类似的子目录。