![](/img/trans.png)
[英]Android gradle: buildtoolsVersion vs compileSdkVersion
[英]How to force a gradle sub project to use root project's buildToolsVersion/compileSdkVersion?
尋找一些聰明的方法只做一次,例如
allprojects {
android {
buildToolsVersion '18.0.1'
compileSdkVersion 18
defaultConfig {
targetSdkVersion 18
}
}
}
否則,每當有新的SDK更新可用時,我需要在每個子項目中(例如在諸如volley或viewpagerindicator之類的引用庫中)執行此操作。
通常,根項目不包含代碼,因此您將使用subprojects
。 此外,您必須在android {}
阻止之前應用Android插件。 除此之外,我希望這可行。
我在另一個問題中回答:
我在這里找到了解決方案。
將它復制在這里以防萬一:
在你的root build.gradle add中
ext {
compileSdkVersion = 20
buildToolsVersion = "20.0.0"
}
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
這將把compileSdkVersion和buildToolsVersion應用於你擁有的任何android模塊。
在您的主項目的build.gradle中更改依賴關系:
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
基本上你只是定義它們一次,可以在任何地方使用。
干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.