前言
jar与aar差异
*.jar:只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源 ,class 以及 res 资源文件全部包含
1、将app-build.gradle的apply plugin: ‘com.android.application’修改成apply plugin: ‘com.android.library’,注释applicationId,使我们的框架作为library;
//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
defaultConfig {
// applicationId "com.sunsky.aardemo"
……
}
2、将manifest中launcher去掉:
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
3、导出 AAR
打开 Andriod Studio 右上角的Gradle projects
,依次展开arrdemo -> app -> Tasks -> build
,双击 assemble
特别注意
AS新版本gradle没有Tasks -> build,则可以用命令替代上面做法
./gradlew eventbus:assemble
参数说明
eventbus
为module名称,需根据自己模块名称进行替换
可能出现的异常
如果出现报错 bash: gradle: command not found
则先在Terminal中输入执行 chmod +x gradlew
这时打开文件夹 app -> build -> outputs -> aar
,将看到自动生成的app-debug.aar
和app-release.aar
4、Project引用 AAR(本地)
4.1将aar文件放入libs目录里面
4.2 在app目录下的build.gradle
文件中添加以下内容
implementation(name: 'app-release', ext: 'aar')//app-release为文件名称