私は最初にここに投稿しました(コードを含めてください): 奇妙な:jniで整数の値を変更できません
jni から Java に複数の値を渡すには、2 つの整数参照を jni/c に渡し、SetIntField() を使用してオブジェクトを変更します。
残念ながら、2 つの値は同じです。Lawrence D'Oliveiro は、Integer は可変ではないため、変更できないと説明しています。どうしてか分かりません。
回避策として、独自の Integer クラスを作成しました。
public class MyInteger {
int value;
public MyInteger(int v) {
value = v;
}
}
そして、このタイプのオブジェクトを jni に渡します:
native int do_something(MyInteger p1, MyInteger p2);
できます。Integer が機能しない理由が気になります。皆さんありがとう。