前言
主要参考fat-aar来合并打包。
但是这个fat-aar很久没维护了,如果直接使用它会有很多问题。由于对gradle脚本也不是太熟,就只能顺着它的意思,将gradle降级成2.2.3的版本。
一开始我本地有2.3.3,可以打包,但是打包出来的aar找不到R资源,还有一些Class根本没有被打包进去。后面我将gradle降级成2.2.3,一切正常了。
前提准备
首先说一下我的demo工程。
有4个library,library1,library2,library3,main-library。顾名思义,就是将前3个library打包进main-library中。
需要更改一下gradle。有两处需要更改。
- 在工程的build.gradle中,更改gradle版本为:
dependencies { classpath 'com.android.tools.build:gradle:2.2.3' }
- 在工程的gradle文件夹->wrapper文件夹->gradle-wrapper.properties文件
#Sat Jun 16 22:38:31 CST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
这里最好是2.14.1,其他版本可能会出现错误。
library1,需合并的第一个Module
里面我写了3个类。然后libs中有一个jar,便于测试libs的合并。
1.Library1Activity->一个活动,显示一张图片。
public class Library1Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_library1); } }