我已经在我的应用程序的JNI文件夹中编写了C++文件。我正在使用Windows系统与NDK和Cygwin 1.7。
我想重申Cygwin中可用的CURL库。
如何在Android中创建JNI应用程序时引用外部.h(库/头文件)文件?
我已经创建了一个组合的Android和C++项目。但是我指的是CURL头文件。当我构建项目时,我得到了致命错误:curl/curl.h:没有这样的文件或目录问题。Android NDK引用JNI中的外部库
回答
请使用这个tutorial是不错的一个。
将项目转换为C/C++原生项目后,请勿忘记更改此设置。
生成器设置,以构建命令
bash C:\tools\android-ndk-r8b-windows\android-ndk-r8b\ndk-build
这是我的NDK的路径可以改变这个路径相应的NDK路径。
遵循以下步骤:
从Android项目转换为C/C++项目: 右击你的项目名称,进入“Android的工具”,然后单击“添加原生支持”
添加路径外部.h文件: 右键单击您的项目名称,转到'属性',在'C/C++ General'下,转到'路径和符号',在'包含'选项卡下,添加您的.h文件所在的文件夹是。请记住要添加到所有语言和配置。因为你在Windows中,我认为你需要将你的Build命令(它在项目属性中的'C/C++ Build'部分)改为“bash C:\ Development \ android-ndk- R8 \ NDK-build.cmd”
以下内容添加到您的Android.mk
:
LOCAL_CFLAGS += -I$/PATH/TO/YOUR/curl.h
LOCAL_LDLIBS += -L$/PATH/TO/YOUR/libcurl.a.for.android -lcurl
的libcurl.a
中已安装的cygwin不是Android的使用,你需要一个版本的Android靶向。如果你没有它,你自己建立它。
Cygwin中没有curl.so文件。 ???我实际上在C++中为测试创建了一个简单的http请求项目,并且当时我链接了libcurl.a文件。 – MobiDev
@ 256你说得对,你需要一个用于静态链接的'libcurl.a',而不是.so – hirschhornsalz
当你拿到libcurl.a文件,不要忘记拷贝卷曲的头文件夹(进入你的usr/include目录/卷曲从Cygwin的),并在此文件夹中的项目添加到JNI之一,所以它在编译时知道头文件。
这意味着还您Android.mk指:
为libcurl库
LOCAL_SRC_FILES := libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/curl
,并为你的C++文件
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/curl
LOCAL_WHOLE_STATIC_LIBRARIES := libcurl
- 1. Android NDK java.lang.UnsatisfiedLinkError JNI
- 2. Android Studio调试NDK/JNI Mapbox库
- 3. 在Android中使用C++ ndk/jni
- 4. 在Android NDK中使用具有外部依赖性的C库
- 5. Android NDK使用JNI中c代码的.so库
- 6. 的Android NDK JNI调用LoadLibrary轰然
- 7. JNI,NDK和OpenCV
- 8. Android NDK/JNI:使用静态库构建共享库
- 9. 用Android NDK问题调用JNI
- 10. 调试ndk Jni这是Android应用程序的一部分
- 11. android JNI加载mupdf(用NDK编译?)
- 12. Android JNI/NDK应用上下文
- 13. Android NDK JNI调用libc函数
- 14. 在JNI使用jlongArray与Android NDK
- 15. JNI/Android NDK - 维护一个全局对象引用
- 16. 如何从外部库引用android类
- 17. Android外部库引用和NoClassDefFoundError
- 18. 引用外部Java和Android库
- 19. NDK,JNI和libcurl
- 20. 如何使用Android Studio + Gradle + NDK构建外部C++库?
- 21. 将CMake和ndk-build外部库集成到Android Studio项目中
- 22. 使用JNI将大型C++库编译为Android NDK -makefile问题
- 23. Android NDK:处理消息的JNI“主”?
- 24. Android - NDK共享库提取与nm/objdump相关的JNI钩子
- 25. 在Android NDK中使用SWIG和JNI实现CMU pocketsphinx android演示
- 26. HELLO-JNI NDK样本 - NDK,构建失败
- 27. 混合Android外部JAR和JNI狂野
- 28. 如何在Eclipse中的Android库项目中引用外部jar
- 29. Android NDK JNI二进制代码?
- 30. Android NDK JNI数组参考表溢出
我忘了提,我已经创建了一个组合的Android和C++项目。您建议的教程有助于创建简单的JNI应用程序。但是我指的是CURL头文件。当我构建项目时,我得到**致命错误:curl/curl.h:没有这样的文件或目录**问题。 – MobiDev