赞
踩
1.打开现有可运行工程的build.gradle,将
apply plugin: 'com.android.application'
改为
apply plugin: 'com.android.library'
2.将app的build.gradle中的 applicationId 删除
3.打开项目的AndroidManifest.xml,将启动项的<intent-filter>删除,将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' } }
名称修改就只需要修改产品名称和版本号即可
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/Android\ Studio.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打包成功
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,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。