未解析的符号NewShortArray和SetShortArrayRegion

时间:2014-09-12 22:57:33

标签: android eclipse android-ndk java-native-interface

我正在尝试在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>

位于文件的开头。

1 个答案:

答案 0 :(得分:0)

我使用Eclipse重启,似乎已经解决了这些问题。但每次我编辑.c文件时,都会弹出未解决的错误,我需要重新启动。这很烦人。对此有何解决方法?

outJNIArray []未设置的问题是一个单独的主题,因此如有必要,我将在论坛上提出另一个问题。