使用RenderScript支持库获取“无法找到'_Z10rsIsObject13rs_allocation'...”

时间:2013-11-16 12:28:22

标签: android renderscript

我已经按照所有步骤为多个目标构建了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"

在我的脚本中,但如果我包括它,它没有任何区别。

2 个答案:

答案 0 :(得分:1)

我们意外地错过了支持库中的一些rsIsObject()实现。好消息是,这很容易修复(一旦修复就需要更新SDK)。在此期间,您可以使用可怕的解决方法:将参数转换为rs_element,它应该可以工作。

答案 1 :(得分:0)

最后根据斯蒂芬的提示做了一个解决方法:

static bool isObject(rs_allocation a){
    return rsIsObject(rsAllocationGetElement(a));
}