如何使用新的插件 DSL 应用 com.android.application 插件?

Jer*_*man 6 android gradle

我有一个通过三重配置的项目:

我想这个迁移到使用新的插件DSL由为启用PluginsDependenciesSpec

然后我:

但这无法解决:

FAILURE:构建失败,出现异常。

  • 其中:构建文件“…/build.gradle”行:2

  • 出了什么问题:在以下任何来源中都找不到插件 [id: 'com.android.application', version: '3.1.3']:

  • Gradle 核心插件(插件不在“org.gradle”命名空间中)

  • 插件存储库(无法解析插件工件 'com.android.library:com.android.library.gradle.plugin:3.1.3')

在以下存储库中搜索:

我缺少什么让 Gradle 连接这里的点,以便它可以将 plugin.id 连接到从适当的存储库中获取的适当的 JAR?

fra*_*rek 1

在 中,pluginManagement您可以使用resolutionStrategy和强制使用存储库中的特定工件google()

pluginManagement {
    repositories {
        google()
    }

    resolutionStrategy {
        eachPlugin {
            if (requested.id.id in ['com.android.application', 'com.android.library']) {
                useModule("com.android.tools.build:gradle:${getProperty('version.plugin.android')}")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用新的pluginsDSL 应用 android 插件:

plugins {
    id 'com.android.application'
}
Run Code Online (Sandbox Code Playgroud)

或者

plugins {
    id 'com.android.library'
}
Run Code Online (Sandbox Code Playgroud)

这是文档