我正在尝试在Eclipse中使用C / JAVA之间的short []和jshortArray:
JNIEXPORT void JNICALL Java_com_testingForFun_testFunc
(JNIEnv *env, jclass clazz, jshort num, jshortArray data) {
jshort outCArray[] = {100, 200};
jshortArray outJNIArray = (*env)->NewShortArray(env, 2); // allocate
if (NULL == outJNIArray) return;
(*env)->SetShortArrayRegion(env, outJNIArray, 0 , 2, outCArray); // copy
//return outJNIArray;
}
我已经使用javah创建了头文件并将其包含在内。但是,Eclipse说NewShortArray和SetShortArrayRegion尚未解析,我无法构建apk。但是,不使用数组(jshort和short)工作正常。我查看了jni.h,如果定义了__cplusplus,似乎定义了NewShortArray其他相关函数,但我使用的是C.我还使用ndk-build和ant在命令行上构建了apk并且我读出了JNIArray [0]或者[1] = 0在调用函数中,所以它也没有在那里工作。我该如何解决这个问题?
此外,Eclipse无法在:
中解析ANDROID_LOG_DEBUG__android_log_print(ANDROID_LOG_DEBUG, "FibLib.c", "fibNI(%lld)", n);
即使
#include <android/log.h>
位于文件的开头。
答案 0 :(得分:0)
我使用Eclipse重启,似乎已经解决了这些问题。但每次我编辑.c文件时,都会弹出未解决的错误,我需要重新启动。这很烦人。对此有何解决方法?
outJNIArray []未设置的问题是一个单独的主题,因此如有必要,我将在论坛上提出另一个问题。