開發(fā)項(xiàng)目時,有時會添加多個module依賴,而在各module中,也各自添加了相關(guān)庫的依賴。此時,常見問題就是同一個庫,可能存在兩個或更多版本,導(dǎo)致項(xiàng)目build失敗。
Process 'command '/Users/zhangxueyan/Library/Android/sdk/build-tools/25.0.0/aapt'' finished with non-zero exit value 1

依賴的庫
上圖中紅框即是同一個庫,不同版本的情況。
那么如何解決呢?
在工程build.gradle文件中添加:
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
targetSdkVersion 27
}
}
}
}
}
上面設(shè)置的效果:各子module(包括app module)的compileSdkVersion、buildToolsVersion、targetSdkVersion都將按此設(shè)置。
subprojects { }
作用:配置這個項(xiàng)目的子項(xiàng)目。這個方法對這個項(xiàng)目的每個子項(xiàng)目執(zhí)行給定的閉包。目標(biāo)項(xiàng)目作為閉包的委托傳遞給閉包。
afterEvaluate
afterEvaluate是一般比較常見的一個配置參數(shù)的回調(diào)方式,只要project配置成功均會調(diào)用,參數(shù)類型以及寫法與afterEvaluate相同

調(diào)整后