一.打包过程:

1.打开现有可运行工程的build.gradle,将

 apply plugin: 'com.android.application'

改为 

apply plugin: 'com.android.library'

2.将app的build.gradle中的 applicationId 删除

3.打开项目的AndroidManifest.xml,将启动项的删除,将application标签中的android:icon="@mipmap/ic_launcher"删除

4.将代码中的switch语句全部改写成if else语句(Android Studio有快捷修改方式)

5.Android studio 工具栏Build->Rebuild Project。如果要打上签名,要在Build->Edit Build Types中signing标签中设置签名

6.打出来的arr文件位置:工程->build->outputs->arr,如图:

aar文件生成的位置

7.此时的arr是**-debug.aar,如果想打app-release.aar文件,则在Terminal命令行里输入./gradlew assembleRelease指令,就生成release.aar了。注意:运行这个命令时可能会报错 gradlew: command not found,解决方法:往下看  Mac配置gradle

8.如果需要自定义aar文件的名称则:

在library的gradle里面加上:

//获取生成的产品名def getProductName() {    return "xxxx"//这里是你自定义的名称}然后再android{}里面加上:android.libraryVariants.all { variant ->    variant.outputs.all {        outputFileName = getProductName() + "_${defaultConfig.versionName}" + '.aar'    }}

名称修改就只需要修改产品名称和版本号即可 

二.Mac配置gradle

1.在应用程序中找到Android Studio,右键点击选择“选择包内容”,找到gradle文件,如下图:

gradle路径

2.右键点击gradle,查看简介,获取路径,如图:

3.打开terminal终端命令窗口

(1)使用命令[cd ~]到home目录下      cd ~

(2)接着使用     touch .bash_profile   

(3)然后   open -e .bash_profile   会以文本的形式打开文件(如果2中不存在的话就新建一个.bash_profile文件)

(4)在文件夹中添加如下带有选中颜色代码,如果不能操作是则是权限问题需要修改权限,具体下面会有介绍

.bash_profile


注意:因为复制后的链接中Android Studio.app中间有空格路径中不能带有空格之类的特殊字符。需要在空格前加\进行转意,如上 保存退出,如果不能操作的话可以将.bash_profile复制粘贴一份,将原来的删除或者添加操作权限

export GRADLE_HOME=/Applications/AndroidStudio.app/Contents/gradle/gradle-2.8

export PATH=${PATH}:${GRADLE_HOME}/bin

注意:在空格之前加 \

(5)最后用[source .bash_profile]命令使用修改后的

(6)操作完成后使用命令[gradle -v]看是否出现版本号

(7)如果出现错误,则需要修改权限:

到刚才的bin目录下使用命令[ls -l]查看目录下文件的权限

修改gradle和gradle.bat权限
如果中间没有x说明没有可执行权限,以上截图中已经做过修改,所以有可执行权限了。 
使用命令[chmod +x gradle.bat] 和 [chmod +x gradle]将权限加上

(8)出现版本号后,回到Android Studio,在Terminal里面敲入命令:

./gradlew assembleRelease

如果出现bash: ./gradlew: Permission denied 错误,则需要给gradlew修改权限:

chmod +x gradlew

(9)再次运行./gradlew assembleRelease,成功的现象如图

release.aar打包成功

三.aar的使用

1.新建工程,将.aar文件copy到libs文件夹下

2.在app的build.gradle文件里添加

(注意:如果aar需要在library里引用,那么需要把aar文件放在library的libs下,在app和library的gradle里面加下面这句话,app的library中需要将路径带上,如:dirs '../library_name/libs')

//放在 android{}里面repositories {    flatDir {        dirs 'libs'   // aar目录    }}
//放在 dependencies {}里面   其中XXX-release 是aar包的名字implementation(name:'XXX-release', ext:'aar')implementation fileTree(dir:'libs', include: ['*.jar'])

3.将用于打包.aar文件的工程中的compile依赖全部添加到新的工程,.arr不会将compile资源打包进来

4.点击.gradle的sync,并重新编译 Rebuild,没有报错则编译成功

5.编译成功后,可在External Libraries中找到arr的工程文件目录,如图:

编译进来的.arr目录

在工程->app->build->intermediates->exploded-aar也可以找到.aar文件目录。如果找不到exploded-aar文件夹,是因为最新的Android stdio 2.3把exploded-aar放在另外一个地方,只需要在gradle.properties 中添加android.enableBuildCache=false就可以了,如果还是没有exploded-aar文件夹,那可能是文件目录本来就不一样,如图是我的目录结构:

intermediates目录结构

转载注明出处:https://blog.csdn.net/u012588160/article/details/81220556,谢谢!

更多相关文章

  1. Android解决WifiManager.removeNetwork()失败--赋予app系统权限
  2. 使用Adobe Flash Builder Burrito创建AIR For Google Android应
  3. eclipse下开发android应用的几个常用插件
  4. Android学习之反编译工具介绍
  5. Android(安卓)热补丁动态修复框架小结
  6. android红米等关于读取本地文件夹图片获取路径的问题的解决
  7. 转自应用程序获得系统权限
  8. [Android|深度学习移植]--基于ncnn的RK3399上的mtcnn人脸检测的
  9. Android(安卓)LBS系列01 使用Location Manager

随机推荐

  1. 1. 2 Textview 及其子类
  2. Android 多媒体应用——MediaPlayer音频
  3. Android Intent实现页面跳转的方法示例
  4. Android(安卓)组件系列之Activity的传值
  5. android之逐帧动画
  6. Android(安卓)Shape控件美化实现代码
  7. android ListView Item和CheckBox、Butto
  8. Android评分控件RatingBar使用实例解析
  9. Android(安卓)- toolbar 优化 title修改
  10. [Android]调试webview