Android ndk 无法在Android NDK项目中使用.c文件

Android ndk 无法在Android NDK项目中使用.c文件,android-ndk,Android Ndk,如果我的Android NDK项目使用.c文件而不是.cpp,那么我无法解析JNIEnv*中的任何函数。以下是我尝试使用它的方式: (*env)->GetCharArrayElements(chrs, 0); 我也尝试过: GetCharArrayElements(env, chrs, 0); env->GetCharArrayElements(chrs, 0); 这是令人沮丧的,因为我有一些c库项目,我想包括,但如果我有.cpp文件,那么该库将需要以某种方式移植,我想避免。任何

如果我的Android NDK项目使用.c文件而不是.cpp,那么我无法解析JNIEnv*中的任何函数。以下是我尝试使用它的方式:

(*env)->GetCharArrayElements(chrs, 0);
我也尝试过:

GetCharArrayElements(env, chrs, 0);
env->GetCharArrayElements(chrs, 0);
这是令人沮丧的,因为我有一些c库项目,我想包括,但如果我有.cpp文件,那么该库将需要以某种方式移植,我想避免。任何帮助/想法都会很好

这是我的Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := NDKDemo
LOCAL_SRC_FILES := NDKDemo.c

include $(BUILD_SHARED_LIBRARY)
编辑:

下面是我如何声明JNIEnv的*

#include <jni.h>
JNIEXPORT void JNICALL Java_com_atd_ndkdemo_NDKDemo_charManip(JNIEnv* env, jobject obj, jcharArray chrs) 

    jchar* cchar0 = GetCharArrayElements(chrs, 0);
    jchar* cchar1 = (*env)->GetCharArrayElements(env, chrs, 0);
    jchar* cchar2 = (*env)->GetCharArrayElements(chrs, 0);
    jchar* cchar3 = env->GetCharArrayElements(chrs, 0);
}
#包括
JNIEXPORT void JNICALL Java_com_atd_ndkdemo_ndkdemo_charManip(JNIEnv*env、jobject obj、jcharArray chrs)
jchar*cchar0=getCharacterRayelements(chrs,0);
jchar*cchar1=(*env)->GetCharArrayElements(env,chrs,0);
jchar*cchar2=(*env)->GetCharArrayElements(chrs,0);
jchar*cchar3=env->GetCharArrayElements(chrs,0);
}

有趣的是,cchar0在我尝试编译之前不会抱怨,然后eclipse告诉我它无法再次解决。

try
(*env)->GetCharArrayElements(env,chrs,0)
。您遇到的错误是什么?无法解析方法GetCharrayElements可能是
env
的类型错误?该方法是如何声明的?添加了对原始POST的更新我也得到了对“GetCharArrayElements”的未定义引用,所以cchar0似乎是正确的,只是因为某些原因它未定义/未链接?