Gradle无法识别lintOptions

时间:2017-09-26 20:52:20

标签: android gradle

首先,有关我的设置的一些信息。我试图在Android Studio中构建一个包含不同模块的应用。我的顶级build.gradle文件中有以下依赖项:

   dependencies {
       classpath 'com.android.tools.build:gradle-experimental:0.9.3'
       classpath 'com.android.tools.build:gradle:2.3.3'
       classpath 'org.moallemi.gradle.advanced-build-version:gradle-plugin:1.5.3'
       classpath 'com.google.gms:google-services:3.0.0'
   }

我试图在我的一个模块中禁用Lint,因为我得到了Lint错误,我稍后会调查(目前,我只想进行构建)。我在我的一个模块中使用了以下设置:

android {

    [...]

    lintOptions {
        abortOnError false
    }

    [...]

}

但是,我收到以下错误:

Error:(48, 0) No signature of method:
com.android.build.gradle.managed.AndroidConfig.lintOptions() is applicable for argument types:
(build_9pxacuo2f46evz0elkujz25xa$_run_closure1$_closure4$_closure11)
values:[build_9pxacuo2f46evz0elkujz25xa$_run_closure1$_closure4$_closure11@96dc8be]

我已经研究了相应的文档,事情似乎是正确的:

https://developer.android.com/studio/build/gradle-tips.html

我在这里做错了什么?非常感谢您对此事的任何帮助。

2 个答案:

答案 0 :(得分:5)

显然我必须用这种方式写东西(这很奇怪,但我现在能够很好地填写):

model {
    android.lintOptions {
        abortOnError false
    }

    android {
        // Rest of the other declarations goes here...
    }
}

我不知道为什么这是有效的,我只知道它有效。一旦我有更多时间(我现在正处于紧张状态),我将回到此处,看看我是否可以进一步调查这一点,并找出指定lintOptions这种奇怪方式的原因......

答案 1 :(得分:0)

Gradle实验插件将android块包装到模块中,而lintOptions方法不接受闭包。

使用android块尝试此代码:

model {
    android {

        [...]

        lintOptions.abortOnError false

        [...]
    }
}

请参阅此处的文档:http://tools.android.com/tech-docs/new-build-system/gradle-experimental