1.在module(要打包的AAR庫)中添加以下gradle文件
跟build.gradle同級(jí)
---fat-aar.gradle
--- debug.gradle (運(yùn)行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會(huì)在目錄同級(jí)生成需要打包出來的模塊
2.產(chǎn)生一系列的問題
1.Could not get unknown property 'prepareReleaseDependencies
由于fat-aar已經(jīng)不被維護(hù)吓笙,使用的低版本gradle參數(shù)有些被高版本gradle移除关摇,降低gradle版本至2.14.1-all(dependencies 2.2.3)
然后重新sync
2.依賴方式修改
不支持implementation 睬魂,改成compile 瑞你,相關(guān)測(cè)試類也需要修改
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同級(jí)目錄添加
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"
}
}
經(jīng)過測(cè)試Jack早已被廢棄,不被推薦使用验庙,而且Java8并不能在低版本中使用,而且添加retrolambda后鏈接的aar庫運(yùn)行l(wèi)ambda會(huì)報(bào)錯(cuò)(—社牲》嘌Γ—)最后還是手動(dòng)改回去了,藍(lán)瘦香菇搏恤。
- Unknown host 'd29vzk4ow07wi7.cloudfront.net
翻墻打開即可訪問下載相關(guān)
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.依賴被混合打包進(jìn)aar之后熟空,其他人引用相關(guān)依賴會(huì)導(dǎo)致merge沖突
添加 傳遞關(guān)系
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藤巢,不使用默認(rèn),改成2.14.1版本息罗,可在Setting/Build/Gradle設(shè)置中Use local gradle distribution下載后解壓放置在.gradle中
路徑設(shè)置C:/Users/xx/.gradle/wrapper/dists/gradle-2.14.1-all
10.語言問題掂咒,代碼中的中文會(huì)亂碼