我已经按照所有步骤为多个目标构建了RenderScript / FilterScript。 我也包括了RenderScript的支持库。我的目标api是18。
当我在这个目标上运行RenderScript时,一切正常。当我尝试在API-14设备上运行它时,我看到以下日志输出
11-16 13:12:34.791: D/dalvikvm(9226): Trying to load lib /data/data/<package>/lib/libRSSupport.so 0x41635250
11-16 13:12:34.811: D/dalvikvm(9226): Added shared lib /data/data/<package>/lib/libRSSupport.so 0x41635250
11-16 13:12:34.821: D/dalvikvm(9226): No JNI_OnLoad found in /data/data/<package>/lib/libRSSupport.so 0x41635250, skipping init
11-16 13:12:34.821: D/dalvikvm(9226): Trying to load lib /data/data/<package>/lib/librsjni.so 0x41635250
11-16 13:12:34.821: D/dalvikvm(9226): Added shared lib /data/data/<package>/lib/librsjni.so 0x41635250
11-16 13:12:34.821: V/RenderScript_jni(9226): RS compat mode
11-16 13:12:34.831: V/RenderScript(9226): 0x5bf60e10 Launching thread(s), CPUs 4
11-16 13:12:34.851: E/RenderScript(9226): Unable to open shared library (/data/data/<package>/lib/librs.<script>.so): Cannot load library: reloc_library[1306]: 119 cannot locate '_Z10rsIsObject13rs_allocation'...
11-16 13:12:34.851: E/RenderScript(9226): Unable to open system shared library (/system/lib/librs.<script>.so): Cannot load library: find_library[1201]: 119 'librs.<script>.so' failed to load previously
11-16 13:12:34.851: W/System.err(9226): android.support.v8.renderscript.RSRuntimeException: Loading of ScriptC script failed.
我在我的脚本中使用了“rsIsObject”函数,这似乎会导致错误。 我试着用
#include "rs_object.rsh"
在我的脚本中,但如果我包括它,它没有任何区别。
答案 0 :(得分:1)
我们意外地错过了支持库中的一些rsIsObject()实现。好消息是,这很容易修复(一旦修复就需要更新SDK)。在此期间,您可以使用可怕的解决方法:将参数转换为rs_element,它应该可以工作。
答案 1 :(得分:0)
最后根据斯蒂芬的提示做了一个解决方法:
static bool isObject(rs_allocation a){
return rsIsObject(rsAllocationGetElement(a));
}