我按照http://android.wooyd.org/JNIExample/上的教程进行操作,当我尝试使用cygwin构建时,我得到:
undefined reference to `android::AndroidRuntime::registerNativeMethods(_JNIEnv*, char const*, JNINativeMethod const*, int)'
在includes中我找到了registerNativeMethods函数,如下所示:
static int registerNativeMethods(JNIEnv* env,
const char* className, const JNINativeMethod* gMethods, int numMethods);
当我向它传递一个const char *和一个JNINativeMethod []时,我不明白为什么编译器正在读取函数的输入为char const *和JNINativeMethod const *。虽然我查看并找到了表示char const *和const char *相同的地方。如果是这样,为什么我会收到此错误。
如果它有所不同,我的ndk入口点是一个c ++文件,并使用stock cygwin。
答案 0 :(得分:0)
registerNativeMethods在libandroid_runtime.so中实现,在ndk中找不到。
样本已声明: 如果您要编写1.5或更高版本的固件,强烈建议您使用Android NDK而不是遵循本指南。
所以指南不是用于ndk使用,是用于android源代码构建