only id(String) method calls allowed in plugins {} script block

近期在动态配置plugins中的id时报了一个错,我工程的config.gradle全局配置为:

ext{
    android=[
            is_application: false,
            compileSdkVersion: 30,
            buildToolsVersion: "29.0.0",
            minSdkVersion    : 21,
            targetSdkVersion : 30,
            versionCode : 1,
            versionName : '1.0',

    ]
}

model下的build.gradle配置原先是这样配置的:

plugins {
    if (rootProject.ext.android.is_application.toBoolean()) {
        id 'com.android.application'
    } else {
        id 'com.android.library'
    }
}

结果一直编译异常,查了资料好像是gradle版本不支持这种写法,需要改成以下这种写法:

if (rootProject.ext.android.is_application.toBoolean()) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}

OK ,这样就可以正常编译了;

你可能感兴趣的:(android埋坑,android)