Android ndk 无法在Android NDK项目中使用.c文件
如果我的Android NDK项目使用.c文件而不是.cpp,那么我无法解析JNIEnv*中的任何函数。以下是我尝试使用它的方式: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文件,那么该库将需要以某种方式移植,我想避免。任何
(*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似乎是正确的,只是因为某些原因它未定义/未链接?