编译Android源代码(JNI)时生成错误

编译Android源代码(JNI)时生成错误,android,c++,makefile,Android,C++,Makefile,我在C中添加了一些新功能,当我尝试构建它时,会出现以下错误: libnativehelper/include/nativehelper/JNIHelp.h:116:错误:未定义对“jniRegisterNativeMethods”的引用错误。 我已经在我的C文件中包含了jnihelp.h 这是与makefile相关的问题还是我遗漏了什么 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optiona

我在C中添加了一些新功能,当我尝试构建它时,会出现以下错误:

libnativehelper/include/nativehelper/JNIHelp.h:116:错误:未定义对“jniRegisterNativeMethods”的引用错误。

我已经在我的C文件中包含了
jnihelp.h

这是与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)
编辑2014年6月5日:我终于修复了它。我只是想把所有的信息都放在这里,以防别人需要

  • 必须修改清单以加载我在下面的评论中提到的某些库。这是为了修复对“jniRegisterNativeMethods”的
    未定义引用的错误
  • 具有本机实现的cpp文件必须位于
    extern“C”
    块内。这导致了不满意的链接错误
    您需要转到父文件夹,在那里有您的构建和dalvik二进制文件。然后,您需要在此处键入:

    build yourproj
    

    (将项目替换为包含代码的文件夹)

    我发现问题确实存在于makefile中 我四处寻找其他JNI实现,并将其添加到makefile中

    LOCAL_SHARED_LIBRARIES := \
            libandroid_runtime \
            libandroidfw \
            libnativehelper \
            libRS \
            libcutils \
            libskia \
            libutils
    
    我不知道那里的一些库是用来做什么的,但我把它们放在那里,然后编译了。 现在我有一个不同的问题。加载编译后的库时,我得到了“未满意的链接错误”。有人对此有想法吗

    编辑:我编译的库正在传送到手机。我手动将它们推到手机上的/system/lib目录,但仍然得到“unsatifiedlinkerror”