gpt4 book ai didi

java - 错误 : The 'java' plugin has been applied, 但它与 Android 插件不兼容

转载 作者:搜寻专家 更新时间:2023-11-01 09:26:47 27 4
gpt4 key购买 nike

我正在尝试创建一个将在项目中的其他模块之间共享的新库。不幸的是,虽然当我尝试创建一个时,我什至在 gradle 构建之前就得到了提到的错误:

The 'java' plugin has been applied, but it is not compatible with the Android plugins.

这是我的gradle:

apply plugin: 'com.android.library'

android {
compileSdkVersion 27

defaultConfig {
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

我已经尝试阅读几个类似的主题,其中人们建议删除 java 插件,但我在我的新库中没有看到任何内容。但是我确实在我的根 gradle 中看到了一个 java 插件:

configure(allprojects) {
println "applying java plugin to $project"
apply plugin: 'java-library'

sourceSets {
main {
java {
srcDirs = ["src"]
}
resources {
srcDirs = ["src/resources"]
}
}
}

sourceCompatibility = 1.7
targetCompatibility = 1.7
}

您认为可能是什么问题?

最佳答案

这段代码:

configure(allprojects) {
println "applying java plugin to $project"
apply plugin: 'java-library'

//...
}

声明 Java 库插件应该应用于代码库中的每个 Gradle 项目。请注意,java 插件(应用程序、库)通常与 android 插件(应用程序、库)不兼容。您可以将后者视为前者的重大修改版本。

这种不兼容性会导致您看到错误。

最佳解决方案取决于整个代码库的用途以及其中的 Gradle 项目。侵入性最小的选项可能是:

  1. allprojects 配置中删除 apply plugin: 'java-library' 和相关配置,而是在每个需要它的 Gradle 项目中手动应用该插件;
  2. 在您的 allprojects 配置中添加一个特殊情况,以便 java-library 插件应用于所有项目除了新项目。

要扩展第二种情况,您可以执行以下操作:

configure(allprojects) {
if (getPath() != "absolute/path/to/new/project") {
println "applying java plugin to $project"
apply plugin: 'java-library'

// ...
}
}

我在这里使用了 getPath 因为 getName 通常不能保证是唯一的,但如果它在你的特定情况下那么这将是一个更友好的条件来编写和阅读。

关于java - 错误 : The 'java' plugin has been applied, 但它与 Android 插件不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50023137/

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