1.在module(要打包的AAR库)中添加以下gradle文件
跟build.gradle同级
---fat-aar.gradle
--- debug.gradle (运行debug拷贝文件)
然后在build.gradle使用( apply plugin: 'com.android.library'下面 )
apply from: 'fat-aar.gradle'
然后把需要被打包出来的依赖 compile 依赖改成fat-aar声明的embedded
exp
embedded 'com.tencent.ilivesdk:ilivesdk:1.9.4'
最后assemble会在目录同级生成需要打包出来的模块
2.产生一系列的问题
1.Could not get unknown property 'prepareReleaseDependencies
由于fat-aar已经不被维护,使用的低版本gradle参数有些被高版本gradle移除,降低gradle版本至2.14.1-all(dependencies 2.2.3)
然后重新sync
2.依赖方式修改
不支持implementation ,改成compile ,相关测试类也需要修改
3.低版本3.0以下AS需要指定buildToolsVersion
在build.gradle下添加buildToolsVersion
4.google仓库无法使用,需要在maven中声明Google库
google()仓库添加于 gradle 4.0
添加build.gradle根目录仓库中
maven {
url 'https://maven.google.com/'
name 'Google'
}
5.compileOptions ,jack编译器需要打开或者移除compileOptions
jackOptions { //defaultConfig中添加
enabled true
}
compileOptions {// android同级目录添加
targetCompatibility 1.8
sourceCompatibility 1.8
}
由于Jack不能在module中使用,
修改成
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar"
}
}
经过测试Jack早已被废弃,不被推荐使用,而且Java8并不能在低版本中使用,而且添加retrolambda后链接的aar库运行lambda会报错(—。—)最后还是手动改回去了,蓝瘦香菇。
- Unknown host 'd29vzk4ow07wi7.cloudfront.net
翻墙打开即可访问下载相关
7.Process 'command 'C:\Android\Sdk\build-tools\24.0.2\aapt.exe'' finished with non-zero exit value 1
低版本api24 icon不支持round,步骤同4,无需降低依赖版本
8.依赖被混合打包进aar之后,其他人引用相关依赖会导致merge冲突
添加 传递关系
compile (project(':applibrary')) { // Notice the parentheses around project
transitive false
}
9.Minimum supported Gradle version is 3.3. Current version is 2.14.1.
修改gradle,不使用默认,改成2.14.1版本,可在Setting/Build/Gradle设置中Use local gradle distribution下载后解压放置在.gradle中
路径设置C:/Users/xx/.gradle/wrapper/dists/gradle-2.14.1-all
10.语言问题,代码中的中文会乱码
网友评论