그래서 ndk/c/C++로 조금 작업 해 왔고 jbooleanArray var 유형에 대해 알고 있습니다.하지만 제 질문은 어떻게 2d 부울 배열을 만들고이를 Java로 반환 할 것인가입니다. ? 다음은 예입니다 :Android ndk; c/C++에서 2d 부울 배열을 만들고이를 Java로 반환하는 방법은 무엇입니까?
#include "retrieveboolarray.h"
#define LOG_TAG "!"
//macros to call the Log functions to allow for debugging. the tag is declared on the line above
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
JNIEXPORT jint JNICALL Java_com_example_ndktesting_generateBoolArrays_retrieveBoolArray(
JNIEnv * env, jobject obj, jint refNum) {
//refNum will eventually be used to access certain arrays
return refNum;
}
그래서 지금은 내가 2D 부울 배열을 생성하고 자바로 반환하는 방법, 정수를 반환이야?
업데이트 : 아직 여기 불행히도
JNIEXPORT jobjectArray JNICALL Java_com_example_ndktesting_generateBoolArrays_retrieveBoolArray(
JNIEnv * env, jobject obj, jint refNum) {
jboolean flag = JNI_TRUE;
jclass stringClass = (*env)->FindClass(env, "java/lang/Boolean");
jobjectArray row;
jobjectArray rows;
jboolean hello = 1;
int MAXRESPONSE = 5;
int MAXTEST = 5;
jsize i, j;
for (i = 0; i < 5; i++) {
row = (*env)->NewObjectArray(env, MAXRESPONSE, stringClass, 0);
for (j = 0; j < 3; j++) {
(*env)->SetObjectArrayElement(env, row, j, hello);
}
if (flag == JNI_TRUE) {
flag = JNI_FALSE;
rows = (*env)->NewObjectArray(env, MAXTEST,
(*env)->GetObjectClass(env, row), 0);
}
(*env)->SetObjectArrayElement(env, rows, i, row);
}
return rows;
}
희망 누군가가 부울 배열을 반환 /이 내가 할 수 해결하는 방법에 대한 아이디어를 가지고 행운과, 내가 이전에 시도한 몇 가지 코드입니다.
불행히도 그 링크를 보았습니다. 어제 운 좋게 수정하지 않으 셨습니다. (내 질문에 대한 업데이트에서 시도한 결과를 포함 시키겠습니다. – codingNewb
저는 지금 제 휴대 전화에 있습니다. 하지만 집에 돌아 가면 작동 예제로 업데이트 할 것입니다. – Dave
@codingNewb 예제를 사용할 수 있습니다. 거기에서 알아낼 수 있어야합니다. – Dave