[解決済み] JNIからJavaに配列を返すには?
2022-05-30 03:12:57
質問
android NDKを使おうとしています。
配列を返す方法はありますか(私の場合は
int[]
)をJavaに返す方法はありますか? もしそうなら、これを行うJNI関数の簡単な例を提供してください。
-ありがとうございます
どのように解決するのですか?
ドキュメントを調べても、最初の質問の一部であるはずの質問がある場合。 この場合、例の JNI 関数では、いくつかの配列が作成されます。 外側の配列は、JNI 関数で作成された「オブジェクト」配列で構成されています。
NewObjectArray()
. JNIの観点からは、2次元の配列はそれだけで、他の多くの内部配列を含むオブジェクト配列です。
次のforループは、JNI関数を使用してint[]型の内部配列を作成します。
NewIntArray()
. もし、単にint型の1次元配列を返したいだけなら
NewIntArray()
関数を使用して返り値を作成します。 もし文字列の一次元配列を作りたいのであれば
NewObjectArray()
関数を使いますが、クラスには別のパラメータを使います。
int型の配列を返したいので、コードは次のようになります。
JNIEXPORT jintArray JNICALL Java_ArrayTest_initIntArray(JNIEnv *env, jclass cls, int size)
{
jintArray result;
result = (*env)->NewIntArray(env, size);
if (result == NULL) {
return NULL; /* out of memory error thrown */
}
int i;
// fill a temp structure to use to populate the java int array
jint fill[size];
for (i = 0; i < size; i++) {
fill[i] = 0; // put whatever logic you want to populate the values here.
}
// move from the temp structure to the java structure
(*env)->SetIntArrayRegion(env, result, 0, size, fill);
return result;
}
関連
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
final, finally, finalizeの違いについて話してください。
-
プロローグでのコンテンツは禁止されています
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
ファインバグタイプ
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
プロローグでのコンテンツは禁止されています
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決