关于如何在android系统平台中使用AAR包的问题
2017-07-15 14:53
656 查看
在系统平台中使用AAR包和我们平常在AS中使用AAR包的方法不太一样!在使用AS引入AAR包时,只需要在gradle文件中导入即可,在系统平台中,所有包的导入和引用都依靠.mk文件,所以想要在系统平台开发中使用AAR包需要我们修改原来的Android.mk文件!!
先看一下我编写的Android.mk文件:
主要代码:
使用LOCAL_STATIC_JAVA_AAR_LIBRARIES 变量指定导入AAR包的名称,这个编译好的包名称跟我们实际放入libs目录下的aar包的名称可以不一样,这个名称是通过预编译之后生成的包名称,这个名称是由我们自己指定的!!
这三行代码很关键,这里通过预编译将libs/openlib-release.aar的aar包编译为名称opencv_aar包,当然你也可以理解为模块,只不过这个模块是由aar包编译生成得到的
如果你的Android.mk文件也是这个编写的,那么恭喜你,你可以使用AAR包中的java代码和so库了(如果有so库的话),但是你还是不可以使用aar包中的R文件资源,如果需要使用的话,那么你需要在LOCAL_AAPT_FLAGS 变量后面添加AAR包中的包名,这AAR打包过程中,会有一个清单文件打包进去,只需要拷贝清单文件中package的包名并赋值给LOCAL_AAPT_FLAGS 即可!!!
在实际使用过程中可以会出现AAR中要求的最小SDK和targetSDK版本与当前应用的版本不匹配问题,修改当前版本以使其匹配AAR中的版本要求
好了,关于如何在系统平台中导入aar包的问题就说到这里,有兴趣的朋友可以关注我,有什么问题大家一起讨论!!!
先看一下我编写的Android.mk文件:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CERTIFICATE := platform LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_STATIC_JAVA_AAR_LIBRARIES := opencv_aar LOCAL_STATIC_JAVA_LIBRARIES := \ android-support-v4\ android-support-v7-appcompat LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \ framework/support/v7/appcompat/res LOCAL_AAPT_FLAGS := \ --auto-add-overlay --extra-packages android.aupport.v7.appcompat LOCAL_PACKAGE_NAME := AarTest include $(BUILD_PACKAGE) include $(CLEAR_VARS) LOCAL_PREBUILD_STATIC_JAVA_LIBRARIES := opencv_aar:libs/openlib-release.aar include $(BUILD_MULTI_PREBUILT)
主要代码:
LOCAL_STATIC_JAVA_AAR_LIBRARIES := opencv_aar
使用LOCAL_STATIC_JAVA_AAR_LIBRARIES 变量指定导入AAR包的名称,这个编译好的包名称跟我们实际放入libs目录下的aar包的名称可以不一样,这个名称是通过预编译之后生成的包名称,这个名称是由我们自己指定的!!
include $(CLEAR_VARS) LOCAL_PREBUILD_STATIC_JAVA_LIBRARIES := opencv_aar:libs/openlib-release.aar include $(BUILD_MULTI_PREBUILT)
这三行代码很关键,这里通过预编译将libs/openlib-release.aar的aar包编译为名称opencv_aar包,当然你也可以理解为模块,只不过这个模块是由aar包编译生成得到的
如果你的Android.mk文件也是这个编写的,那么恭喜你,你可以使用AAR包中的java代码和so库了(如果有so库的话),但是你还是不可以使用aar包中的R文件资源,如果需要使用的话,那么你需要在LOCAL_AAPT_FLAGS 变量后面添加AAR包中的包名,这AAR打包过程中,会有一个清单文件打包进去,只需要拷贝清单文件中package的包名并赋值给LOCAL_AAPT_FLAGS 即可!!!
在实际使用过程中可以会出现AAR中要求的最小SDK和targetSDK版本与当前应用的版本不匹配问题,修改当前版本以使其匹配AAR中的版本要求
好了,关于如何在系统平台中导入aar包的问题就说到这里,有兴趣的朋友可以关注我,有什么问题大家一起讨论!!!
相关文章推荐
- 关于AndroidManifest.xml开发中使用系统权限报错的问题
- 关于Android JNI 编程如何定位段错误的问题(addr2line的使用)
- 关于使用smack4.x 在android平台开发时的jar包问题小结
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- 关于Cocos2D-X 3.10在android平台上使用外接键盘无法响应的问题
- 关于使用android Eclipse按ctrl+鼠标左键或者F5出现source not found的问题如何解决
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- 关于android开发中使用系统权限报错的问题
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
- 关于如何获得使用[迅播播放器]播放过的电影的问题,及如何删除播放过的文件的解答(一).
- android源码解析 ---- Mms 短信息,如何使用系统浮动搜索框
- 【原】如何使用Ubuntu U盘启动盘修复更新后无法启动系统的问题
- Android 关于 如何使用外界导入的数据库文件
- 如何使用eclipse单独调试android系统的app
- 关于win32程序如何使用mfcdll的问题.