【问题标题】:ndk-build not calling function properlyndk-build 没有正确调用函数
【发布时间】:2012-03-21 07:46:24
【问题描述】:

我按照http://android.wooyd.org/JNIExample/ 上的教程进行操作,当我尝试使用 cygwin 构建时,我得到:

undefined reference to `android::AndroidRuntime::registerNativeMethods(_JNIEnv*, char const*, JNINativeMethod const*, int)'

在包含中,我发现了如下声明的 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++ 文件,我使用的是股票 cygwin。

【问题讨论】:

    标签: android-ndk cygwin


    【解决方案1】:

    registerNativeMethods 在 libandroid_runtime.so 中实现,在 ndk 中找不到。

    样本声明: 如果您正在为固件 1.5 或更高版本进行编码,强烈建议使用 Android NDK 而不是遵循本指南。

    所以该指南不适用于 ndk,仅用于 android 源代码构建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2015-11-09
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多