以Gson为例:
工程的gradle配置:
buildscript {
dependencies {
classpath 'com.github.kezong:fat-aar:1.3.8'
}
}
在library的gradle配置:
plugins {
id 'com.kezong.fat-aar'
}
android {
buildTypes {
release {
minifyEnabled true // 运用混淆保留依赖
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
embed 'com.google.code.gson:gson:2.8.4' // embed 完全打入
}
最后在 proguard-rules.pro 混淆文件配置保留依赖的配置:(以Gson为例)
# Gson
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod
-dontwarn com.google.gson.**
-keep class com.google.gson.**{*;}
-keep interface com.google.gson.**{*;}
这样子编译出来的aar包被第三方依赖后就有Gson去使用了
注:若第三方本来就有Gson的依赖,同时也依赖了我们编译的aar包,则会报错(依赖冲突),所以在完全打入某项依赖时需要谨慎