编译Android源代码(JNI)时出现错误
Build error while compiling Android source (JNI)
我在C中添加了一些新功能,当我试图构建它时,它给了我以下错误:
libnativehelper/include/nativehelper/JNIHelp.h:116: error: undefined reference to 'jniRegisterNativeMethods' error.
我已经在我的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)
编辑6/5/14:我终于修好了。我只是想把所有的信息都放在这里,以防有人需要。
- 必须修改清单以加载我下面评论中提到的某些库。这是修复
undefined reference to 'jniRegisterNativeMethods'
错误 具有本机实现的cpp文件必须位于
extern "C"
块中。这导致了UnsatisfiedLinkError。您需要转到包含构建和dalvik二进制文件的父文件夹。然后你需要输入:
build yourproj
(将yourproj替换为存放代码的文件夹)
我发现问题确实在makefile中我查找了其他JNI实现,并将其添加到makefile
LOCAL_SHARED_LIBRARIES :=
libandroid_runtime
libandroidfw
libnativehelper
libRS
libcutils
libskia
libutils
我不知道里面的一些库是用来做什么的,但我把它们留在那里,它被编译了。现在我有一个不同的问题。当我加载编译库时,我得到"不满意的链接错误"。有人对此有什么想法吗?
编辑:我编译的库正在被转移到电话。我手动将它们推到电话上的/system/lib目录,但我仍然得到'UnsatisfiedLinkError'。
相关文章:
- JNI 在应用程序中检测到错误:在为 innerclass 调用 NewObject 时使用了无效的 jobject
- 使用本机 JNI 静态方法实现C++ Java 运行时错误
- 有时只得到 jni segv_accer或segv_mapper错误
- Android (ART) 崩溃并显示错误 JNI 在应用程序中检测到错误:jstring 是无效的本地引用
- JNI 不满意链接错误: 动态链接库 (DLL) 初始化例程失败
- C++ JNI 不满意的链接错误
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- 任何人都可以在带有JNI的Android Studio上帮助我解决此错误,是否缺少一些内容?
- 在 JNI 中使用错误的代码将 jbytearray 转换为 char*
- Android JNI 未定义对错误 c++ 方法的引用
- JNI - WMI 连接错误
- JNI 代码返回字符串,但得到错误 java.lang.UnsatisfiedLinkError: com.packag
- 在创建新对象时,尝试将参数提供给JNI对象的构造函数时会出现错误
- JNI检测到应用程序中的错误:使用已删除的弱全局参考
- 从WordCount Hadoop示例调用Helloworld Jni函数,给出错误Java.lang.unsatisf
- 发生 JNI 调用 c++ dll "不满意链接错误: 对内存位置的无效访问"
- 返回数组点列表的 JNI 方法中的错误
- JNI 和 C++ - 不满意的链接错误
- 正在构建用于Oracle jvm的avahi(错误:jni.h未找到)
- 错误:JNI方法的类型冲突