android 依赖外部库的编译方法
来源:互联网 发布:谷歌地图js api接口 编辑:程序博客网 时间:2024/06/06 03:54
如果我们需要用到第三方提供的动态库,需要先使用预编译,把第三方的动态库安装到libs目录,然后在需要调用的文件的Android.mk里使用
LOCAL_SHARED_LIBRARIES += 来链接这些动态库。
实施步骤:
1.在jni下新建一个文件夹,把第三方动态库放进去,并添加Android.mk,形如以下:
include $(CLEAR_VARS)
LOCAL_MODULE := xxx1
LOCAL_SRC_FILES := libs/libxxx1.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := xxx2
LOCAL_SRC_FILES := libs/libxxx2.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := xxx3
LOCAL_SRC_FILES := libs/libxxx3.so
include $(PREBUILT_SHARED_LIBRARY)
2.如果在mycode.c调用第三方库函数,则在编译mycode.c时加入依赖,形如以下:
LOCAL_SHARED_LIBRARIES += \
libxxx1 \
libxxx2
libxxx3
后记
有一次使用第三方库,在cygwin下编译出现下面的错误:
D:/software/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/. ./lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ./obj/local/armeabi-v7a/libxxx1.so: Permission denied
D:/software/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/. ./lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ./obj/local/armeabi-v7a/libxxx2.so: Permission denied
D:/software/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/. ./lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ./obj/local/armeabi-v7a/libxxx3.so: Permission denied
collect2: ld returned 1 exit status
/cygdrive/d/software/android/android-ndk-r8e/build/core/build-binary.mk:450: recipe for target `obj/local/armeabi-v7a/liblinphone.so' failed
make: *** [obj/local/armeabi-v7a/liblinphone.so] Error 1
解决办法:错误是权限问题,于是使用chmod 777 libxxx1.so,修改libxxx1.so、libxxx2.so、libxxx3.so即可。
- android 依赖外部库的编译方法
- Android 编译环境的依赖库安装
- Android 编译环境的依赖库安装
- libxml2裁剪编译(不用依赖外部库)
- 把Android工程编译成Jar包(java库)的方法 + 若干工程编译依赖的设置方法
- Android studio 添加依赖库的方法
- webkit几个依赖库在windows下的编译方法
- webkit几个依赖库在windows下的编译方法
- webkit几个依赖库在windows下的编译方法
- C++单元测试中Mock外部依赖的方法
- Android 4.0.3 源码编译中添加外部jar包和外部so到apk的方法
- Android 无法查看外部依赖jar的源码的问题
- Android 无法查看外部依赖jar的源码的问题
- Android 无法查看外部依赖jar的源码的问题
- Android 无法查看外部依赖jar的源码的问题
- 依赖新的库之后android studio编译报错
- Android之查看外部依赖jar的源码
- Android编译打包-gradle task 的依赖
- 威尔士的发生大是大非地方不是
- 初学者如何熟悉Linux内存管理
- Windows中检测联网(二)
- Android权限及chown失败原因查找
- 使用NDK和Cygwin编译第一个so包
- android 依赖外部库的编译方法
- Oracle 行列转换 总结
- 服务器取绝对路劲的问题
- 将表数据查询出 insert 格式的存储过程
- prepare for the provincial time --10.2--Density of Power Network
- 蓝桥杯 错误票据(第四届预赛第7题)
- JAVA annotation入门
- php遍历关联数组的三种方法
- Spring事务管理与数据库隔离级别的关系(Spring+mysql)