Android 如何管理和引用特定的依赖项库版本?
我的根Android 如何管理和引用特定的依赖项库版本?,android,android-studio,gradle,android-gradle-plugin,build.gradle,Android,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,我的根build.gradle如下所示: ... ext{ buildToolsVersion = '23.2.1' } ... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVers
build.gradle
如下所示:
...
ext{
buildToolsVersion = '23.2.1'
}
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}'
compile 'com.android.support:design:${rootProject.ext.buildToolsVersion}'
}
为什么我不能像这样管理我的Android支持库版本:
...
ext{
buildToolsVersion = '23.2.1'
}
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}'
compile 'com.android.support:design:${rootProject.ext.buildToolsVersion}'
}
${}
在Groovy中工作,为什么它在Gradle中不工作?使用:
在根目录/build.gradle
中:
ext {
//Version
supportLibrary = '23.2.1'
//Support Libraries dependencies
supportDependencies = [
design : "com.android.support:design:${supportLibrary}",
recyclerView : "com.android.support:recyclerview-v7:${supportLibrary}",
cardView : "com.android.support:cardview-v7:${supportLibrary}",
appCompat : "com.android.support:appcompat-v7:${supportLibrary}",
supportAnnotation: "com.android.support:support-annotations:${supportLibrary}",
]
}
dependencies {
//......
compile supportDependencies.appCompat
compile supportDependencies.design
}
在模块/build.gradle中
:
ext {
//Version
supportLibrary = '23.2.1'
//Support Libraries dependencies
supportDependencies = [
design : "com.android.support:design:${supportLibrary}",
recyclerView : "com.android.support:recyclerview-v7:${supportLibrary}",
cardView : "com.android.support:cardview-v7:${supportLibrary}",
appCompat : "com.android.support:appcompat-v7:${supportLibrary}",
supportAnnotation: "com.android.support:support-annotations:${supportLibrary}",
]
}
dependencies {
//......
compile supportDependencies.appCompat
compile supportDependencies.design
}
我的错。'com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}
等于
“com.android.support:appcompat-v7:\${rootProject.ext.buildToolsVersion}”
所以应该是
“com.android.support:appcompat-v7:${rootProject.ext.buildToolsVersion}”
加上双引号这是我的错,你的解决方案很棒。我喜欢将支持库捆绑在一个数组中的想法。有没有一种方法可以在Gradle中编写一个循环来编译所有这些循环,而不需要单独的compile
语句?很好的解决方案!!但是,我们如何检查是否有更新版本的lib?您可以编辑原始问题,而不必发布带有对您自己问题的更正的答案。如果您关心管理各种依赖项的更新,您可以在此处看到我的问题:@Ben Manes有一个奇妙的解决方案。另外,如果你在我的问题的评论中读到,他也提出了一种构建依赖关系的巧妙方法。