app.gradle
android {
...
defaultConfig {
...
//选择要使用的平台
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
...
//aar目录
repositories {
flatDir {
dirs 'libs'
}
}
//so包目录
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
//app打包命名
android.applicationVariants.all {
variant ->
variant.outputs.all {
outputFileName = "APP_NAME_${defaultConfig.versionName}.apk"
}
}
//忽略拼写检查
lintOptions {
abortOnError false
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
...
//lib依赖
//compile project(path: ':mylibrary')
//aar
//compile(name: 'test-release', ext: 'aar')
}
library.gradle生成jia包并开启混淆,aar在mylibrary\build\outputs\aar目录下
//minifyEnabled true
//=======生成jar包脚本 start=============================================
//打jar包
def SDK_BASENAME = "target_sdk";
def SDK_VERSION = "_V1.0";
def sdkDestinationPath = "build";//生成jar存放目录
//release目录下的classes.jar
def releaseJar = file('build/intermediates/bundles/release/classes.jar')
//将libs目录下的gson打入jar包
def thirdPartyJar = file('libs/gson-2.3.1.jar')
//打包jar前先删除原先的jar
task deleteBuild(type: Delete) {
delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar"
}
task makeJar(type: Jar) {
from zipTree(releaseJar)//导出混淆的jar
from zipTree(thirdPartyJar)//将第三方jar包打入jar包
from fileTree(dir: 'src/main', includes: ['assets/**'])//将assets目录打入jar包
exclude('**/BuildConfig.class')//排除不必要的class文件
baseName = SDK_BASENAME + SDK_VERSION
destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
//=======生成jar包脚本 end=============================================