Android系统开发之三:源码添加编译多个第三方jar包
2016-03-17 11:19
597 查看
在源码下编译android工程使用到第三方jar包需要在Android.mk文件中添加java静态库的目录。主要用到了Android.mk文件中的两个变量。
LOCAL_STATIC_JAVA_LIBRARIES 和 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES,就是需要加载静态库。
Android.mk
备注:注意上述别名不能出现和系统中其他别名相同的情况,此别名会编译生成out文件夹,如遇同名情况会出现编译报错问题:
LOCAL_STATIC_JAVA_LIBRARIES := jarlib1 jarlib2 jarlib3 jarlib4
这里就有两个问题:
第一:jar文件放在android工程的哪里?
答案是随便放在哪里! 这里举个例子,比如我放在工程主目录下的jars文件夹下面,那么我在定义变量LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES值的时候就需要指定一个路径,即jars/。
第二:我在mk文件中怎样引用?
可以看到mk文件中比一般的mk文件增加了两个变量:
LOCAL_STATIC_JAVA_LIBRARIES即java静态库,这里我们只需要取个名字就好;
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES 具体库对应的库文件需要在其中加载即可。
LOCAL_STATIC_JAVA_LIBRARIES 和 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES,就是需要加载静态库。
Android.mk
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) # Added for source code compile start 为jar起一个别名 LOCAL_STATIC_JAVA_LIBRARIES := jarlib1 jarlib2 jarlib3 jarlib4 LOCAL_PACKAGE_NAME := yourprojectname # Added for source code compile end LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) # Added for source code compile start 冒号前面为jar别名,后面为jar文件的实际路径 include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := jarlib1:jars/org.apache.commons.codec-1.7.0.jar \ jarlib2:jars/org.knopflerfish.bundle.kxml-LIB-2.3.0.jar \ jarlib3:jars/osgi.cmpn-4.3.0.jar \ jarlib4:jars/osgi.core-4.3.0.jar include $(BUILD_MULTI_PREBUILT) # Added for source code compile end # Use the folloing include to make our test apk. include $(call all-makefiles-under,$(LOCAL_PATH))
备注:注意上述别名不能出现和系统中其他别名相同的情况,此别名会编译生成out文件夹,如遇同名情况会出现编译报错问题:
LOCAL_STATIC_JAVA_LIBRARIES := jarlib1 jarlib2 jarlib3 jarlib4
这里就有两个问题:
第一:jar文件放在android工程的哪里?
答案是随便放在哪里! 这里举个例子,比如我放在工程主目录下的jars文件夹下面,那么我在定义变量LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES值的时候就需要指定一个路径,即jars/。
第二:我在mk文件中怎样引用?
可以看到mk文件中比一般的mk文件增加了两个变量:
LOCAL_STATIC_JAVA_LIBRARIES即java静态库,这里我们只需要取个名字就好;
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES 具体库对应的库文件需要在其中加载即可。
相关文章推荐
- android开发——跨进程通讯数据传递(二)
- 设置Android studio 忽略项目路径
- 2016年3月17日Android学习笔记
- Android应对进程被杀死--Service(二)
- 为 Android 平台开发一个输入法
- Android多层级判断view是否被遮挡
- android MIPI屏 导航栏丢失
- android studio编写java8
- Android数据绑定框架DataBinding,堪称解决界面逻辑的黑科技
- Android验证码倒计时功能实现
- ANDROID安卓activity与fragment,activity之间互相传值(四)
- android环境搭建时出现各种问题时手动安装的方法
- android 通过eclipse混淆代码、签名
- android事件拦截处理机制详解
- 判断手机是否安装某程序的方法:
- android图像处理之Bitmap
- Android使用SharedPreferences实现登录帐号和密码的保存方法简介
- Android中控件TextView实现跑马灯只显示省略号问题
- android 6.0 修改vold check sd卡同步改成异步机制
- Android第三方登录详解1