gpt4 book ai didi

gradle - Gradle 3.4.x无法在特定于项目的行为中应用插件

转载 作者:行者123 更新时间:2023-12-03 05:58:43 25 4
gpt4 key购买 nike

我正在关注有关多项目构建的文档
https://docs.gradle.org/current/userguide/multi_project_builds.html

我有一个外部依赖项,我正在将其纳入主build.gradle
Howere,遇到错误

Error:Plugin with id 'com.android.library' not found.

我的主要build.gradle的一部分
project(':myexternallibrary') {
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:$versions.androidPluginVersion"
// classpath "me.tatarka:gradle-retrolambda:3.6.0"
}
}



android {
}


model {
components {
main() {
sources {
java {
source {
srcDirs "src/main"
}
// configure the "java" source set
}
}
}
}
}
**apply plugin: 'com.android.library'**
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
// androidTestCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.8.0'
}
}

我究竟做错了什么? (我无法在myexternallibrary的build.gradle中应用com.android.library(因为我也在非Android版本中使用了该库)

最佳答案

回答我自己的问题。有几种技巧可以使上述方法起作用(同样,目标是在Android中使用相同的Java库,并在AndroidStudio和IntelliJ社区版中使用非android版本)。

在主应用程序的build.gradle中
我不得不更换

apply plugin: 'com.android.library'


apply plugin: com.android.build.gradle.LibraryPlugin

我没有任何解释,为什么我必须用其类名替换插件名称。
这可能是一个错误,我在2013年某处的某个地方发现了一个引用不同但相似的问题。因此,似乎gradle在最近4年内没有修复它。

这是更新部分的外观
...
project(':myexternallibrary') {
apply plugin: com.android.build.gradle.LibraryPlugin
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
}

//'com.android.tools.build
//apply plugin: 'com.android.library'
//apparently within a project we must specify a class name of the plugin
//without quotes...
apply plugin: com.android.build.gradle.LibraryPlugin

model {
components {
main() {
sources {
java {
source {
srcDirs "src/main"
}
}
}
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.8.0'
}

}

我了解到的另一件事是,必须将myexternallibrary库的build.gradle保持为“哑”。例如,我在那里有一条指令将临时生成文件存放到另一个目录中(因为在Windows上超出了路径长度)
allprojects {
repositories {
jcenter()
}
buildDir = "${System.getenv('HOME')}/tmp/${rootProject.name}/${project.name}"
}

但是该指令(buildDir)即使在此新的构建结构中以前运行良好,也导致gradle混淆了目录。.而我得到的是“找不到AndroidManifest.xml” ...

关于gradle - Gradle 3.4.x无法在特定于项目的行为中应用插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43218835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com