0

我正在尝试获取一个简单的渲染脚本函数来获取两个数字,将它们相加并返回结果,但是我还没有找到一个示例项目来顺利完成这项工作。当我尝试加载文件时,我不断收到一个奇怪的错误:

ScriptC_myexamplescript myScript;
RenderScript rs = RenderScript.create(this);

我得到错误:

Symbol not found: .rs.dtor  on the next line:
myScript = new ScriptC_myexamplescript(rs, getResources(), R.raw.myexamplescript);

我的 .rs 文件很简单:

#pragma version(1)
#pragma rs java_package_name(com.exercise.<my pacakge name>);

void init(){

}

void root(const float *v_in, float *v_out) {

   const float *data = v_in;
   float *outData = v_out;
   *outData = *data;    

}

有谁知道这意味着什么,或者如果有一个简单的项目我可以为 Android ICS 下载,然后它可以进行数学运算,而不是实际的渲染?

(我可以让渲染脚本文件工作,但这不是我想要的。我不想要任何图形)

编辑今天我试图让它运行,并得到以下问题:

Allocation mInAllocation = null;
Allocation mOutAllocation;

float[] A = new float[1];
for (int i = 0; i < 1; i++) {
A[i] = 2;
}



Allocation inFloatPointer = Allocation.createSized(rs, Element.F32(rs), A.length, Allocation.USAGE_SCRIPT);
Allocation outFloatPointer = Allocation.createSized(rs, Element.F32(rs), A.length, Allocation.USAGE_SCRIPT);  
inFloatPointer.copyFrom(A); // copies from an array of floats (random numbers in this test case).
mScript.forEach_root(inFloatPointer, outFloatPointer);            

我收到错误消息:对于类型 ScriptC_RenderScript 的 forEach_root 方法未定义 .java 文件中没有 forEach_root 函数,即使在我清理项目后它仍然不存在。

是否有一个简单的项目可以下载,只需一个数学函数即可下载?

4

2 回答 2

1

你确定这里确实有错误吗?我相信您只是看到了额外详细的日志记录信息。您可以发布确切的 logcat(或 Java 异常跟踪)吗?请注意,如果您真的想执行您的函数,您需要创建输入和输出分配,然后调用“myScript.forEach_root(input, output);” 为了让它在输入/输出的每个单元格上执行 root() 函数。完成后,您可以从输出分配中读取结果并从 Java 中使用它们。

于 2012-12-14T06:28:01.890 回答
0

添加到清单的 before <application>,行

<uses-sdk android:minSdkVersion="14" />

任何低于 14 的值都会引发您之后提到的错误ant clean debug

于 2013-06-17T13:05:56.593 回答