我收到Gradle关于弃用动态属性的警告。
不推荐按需创建属性(a.k.a.动态属性),并计划在Gradle 2.0中删除。有关替换动态属性的信息,请阅读http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html。 弃用的动态属性:" srcDirs" on" source set aild",value:" [src]"。 弃用动态属性" srcDirs"在多个地点创建。
不幸的是,我不擅长Gradle语法,因此在阅读上述文章后,我无法理解应该更改哪些值以迁移到新标准。
项目仍然可以在Eclipse中构建,因此配置就像
apply plugin: 'android'
android {
buildToolsVersion "19.0.3"
compileSdkVersion 19
buildTypes {
...
}
productFlavors {
...
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDirs = ['src']
}
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
lib.srcDirs = ['libs']
jniLibs.srcDirs=['libs']
}
full {
java {
srcDirs = ['flavors/full/src']
}
}
light {
java {
srcDirs = ['flavors/light/src']
}
res {
srcDirs 'flavors/light/res'
}
assets {
srcDirs 'flavors/light/assets'
}
}
}
}
答案 0 :(得分:6)
脚本中的错误就是这行代码:
aild.srcDirs = ['src']
在旧版Gradle中,您可以在配置期间动态添加新属性。本质上,该行将做的是在“aild”对象上创建一个名为“srcDirs”的新字段并设置它的值。我相信他们贬低这种行为的原因是它通常是一种代表臭虫或拼写错误的代码味道。如果您确实想要动态创建该属性,则可以执行以下操作:
aild.ext.srcDirs = ['src']
但是,我不认为这实际上是你想要的。经过一番谷歌搜索之后,我想你可能想尝试将“aild”更改为“aidl”,或者甚至只是删除所有的一行,因为我认为你实际上并没有在你的项目中使用它。