无法获得简单的renderscript数学函数来运行

时间:2012-12-14 04:36:43

标签: java android renderscript

我正在尝试使用一个简单的renderscript函数来获取两个numnbers,添加它们并返回结果,但是我还没有设法找到一个示例项目来顺利地完成。 当我尝试加载文件时,我一直收到一个奇怪的错误:

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以及之后的数学,而不是真正的渲染才有效?

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

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

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的功能,甚至在我清理项目后它仍然没有。

我可以下载一个简单的项目,只需要下载数学函数吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

<application>之前添加到清单

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

14以下的任何值都会引发您在ant clean debug

之后提到的错误