android - Gradle:不推荐使用的动态属性。如何重新配置​​?

标签 android gradle

我从Gradle收到有关不推荐使用的动态属性的警告。

Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties. Deprecated dynamic property: "srcDirs" on "source set aild", value: "[src]". Deprecated dynamic property "srcDirs" created in multiple locations.



不幸的是,我不擅长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'
            }
        }
    }
}

最佳答案

您的脚本中的错误是以下代码行:

aild.srcDirs = ['src']

在较早版本的Gradle中,允许您在配置期间动态添加新属性。本质上,该行将要做的是在“aild”对象上创建一个名为“srcDirs”的新字段并设置其值。我相信他们不赞成这种行为的原因是,它通常是代表 bug 或错字的代码气味。如果确实要动态创建该属性,则可以执行以下操作:

aild.ext.srcDirs = ['src']

但是,我认为这实际上不是您想要的。经过一番谷歌搜索后,我认为您可能想尝试将“aild”更改为“aidl”,甚至只是一起删除该行,因为我认为您实际上不在项目中使用它。

关于android - Gradle:不推荐使用的动态属性。如何重新配置​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22506118/

相关文章:

android - ProgressDialog 不显示标题和消息

android - 如何在没有用户交互的情况下自动更新持续运行的 Android 应用程序

android - ViewModelProviders 在 API 19 上找不到我的 ViewModel 类

java - Spring Boot 可执行 jar,其中 init.d 以 root 而不是用户身份启动

java - 如何配置 Gradle 进行代码生成以便 IntelliJ 识别生成的 java 源?

android - 不会为从 Android Gradle 插件 8.0 发布的 Maven 自动创建软件组件

android - OpenGL ES 2.0/GLSL 不呈现数据 (Kotlin)

android - 为来 self 自己的应用程序的来电提供来电显示

java - 找不到 net.shibboleth.tool :xmlsectool:2. 0.0

gradle - 简单的常规程序-Gradle