0

2つの数値を取得し、それらを追加して結果を返す単純なrenderscript関数を取得しようとしていますが、それをスムーズに行うためのサンプルプロジェクトを見つけることができませんでした。ファイルを読み込もうとすると、奇妙なエラーが発生し続けます。

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);            

エラーメッセージが表示されます。メソッドforEach_rootは、タイプScriptC_RenderScriptに対して未定義です。.javaファイルに関数forEach_rootがなく、プロジェクトをクリーンアップした後でも、まだ存在していません。

ダウンロードできる数学関数だけでダウンロードできる簡単なプロジェクトはありますか?

4

2 に答える 2

1

ここに確かにエラーがありますか?余分な詳細なログ情報が表示されているだけだと思います。正確なlogcat(またはJava例外トレース)を投稿できますか?実際に関数を実行する場合は、入力と出力の割り当てを作成してから、「myScript.forEach_root(input、output);」を呼び出す必要があることに注意してください。入出力の各セルでroot()関数を実行させるため。それが完了すると、出力割り当てから結果を読み戻し、Javaからそれらを使用できます。

于 2012-12-14T06:28:01.890 に答える
0

マニフェストの前<application>に、行を追加します

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

14未満の値は、後に言及したエラーをスローしますant clean debug

于 2013-06-17T13:05:56.593 に答える