![](/img/trans.png)
[英]Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'com.android.application']
[英]How to apply the com.android.application plugin using the new plugins DSL?
我有一個通過三重配置的項目:
在頂級build.gradle 中聲明存儲庫:
buildscript { repositories { google() }} allprojects { repositories { google() }}
在頂級build.gradle 中聲明類路徑依賴項,以便從相應的存儲庫中下載插件工件
buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.3' }}
然后,在 app build.gradle文件中,應用插件:
apply plugin: 'com.android.application'
我想遷移它以使用由PluginsDependenciesSpec
啟用的新插件 DSL 。
然后我:
在settings.gradle 中聲明存儲庫:
pluginManagement { repositories { google() }}
在 app build.gradle 中聲明插件依賴:
plugins { id "com.android.application" version "3.1.3" }
但這無法解決:
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')
在以下存儲庫中搜索:
- 谷歌
- BintrayJ中心
- 行家( https://maven.fabric.io/public )
- Gradle 中央插件庫
我缺少什么讓 Gradle 連接這里的點,以便它可以將 plugin.id 連接到從適當的存儲庫中獲取的適當的 JAR?
在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')}")
}
}
}
}
然后你可以使用新的plugins
DSL 來應用 android 插件:
plugins {
id 'com.android.application'
}
或者
plugins {
id 'com.android.library'
}
這是文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.