我在C中添加了一些新功能,当我尝试构建它时,它给了我以下错误:
libnativehelper/include/nativehelper/JNIHelp.h:116: error: undefined reference to 'jniRegisterNativeMethods' error.
我已将jnihelp.h
包含在我的C档中。
这是与makefile相关的问题还是我遗漏了什么?
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := newfile
LOCAL_SRC_FILES := newfile.cpp
include $(BUILD_SHARED_LIBRARY)
编辑6/5/14:我终于解决了它。我以为我会把所有信息放在这里以防其他人需要它。
undefined reference to 'jniRegisterNativeMethods'
错误extern "C"
块内。这导致了UnsatisfiedLinkError。 答案 0 :(得分:0)
您需要转到父文件夹,其中包含您的构建和dalvik二进制文件。然后从那里你需要输入:
build yourproj
(将您的项目替换为包含代码的文件夹)
答案 1 :(得分:0)
我发现问题确实存在于makefile中 我四处寻找其他JNI实现并将其添加到makefile
LOCAL_SHARED_LIBRARIES := \
libandroid_runtime \
libandroidfw \
libnativehelper \
libRS \
libcutils \
libskia \
libutils
我不知道那里有几个库是什么,但我把它们留在那里并编译。 现在我有一个不同的问题。加载编译库时,我收到'Unsatified Link错误'。有没有人对此有所了解?
编辑:我的编译库正在传输到手机。我手动将它们推到手机上的/ system / lib目录中,但我仍然得到'UnsatisfiedLinkError'。