"java"插件与Android插件不兼容。

12

我在安装了Android Studio并创建一个简单应用程序后遇到了错误。

我采取的步骤如下:

  1. 下载并安装最新版本的Android Studio。
  2. 创建一个新项目。

当项目加载时,Gradle出现了错误:

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

Gradle模块文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "info.ankitjc.happybirthday"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.0'
    testCompile 'junit:junit:4.12'
}

Gradle 项目文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我在这里搜索了可能的解决方案。

在“文件”>“无效缓存/重启”后 在“文件”>“无效缓存/重启”后


1
分享 gradle 文件 - Pztar
你的链接似乎有效,请删除包含 apply plugin: 'java' 的那一行。 - OneCricketeer
@ajc,如果这样不起作用,请尝试执行“重建”操作,然后尝试转到“文件”->“无效缓存/重新启动”->“无效并重新启动”。 - Pztar
@Pztar.. 两种方法都试过了,但都没有成功。我无法理解这个问题,可能是什么原因呢?我的jdk和android插件之间有冲突吗? - ajc
上传到GitHub,这样每个人都可以更好地帮助你。 - Leandro Borges Ferreira
显示剩余11条评论
7个回答

2
我认为路径没有被设置为环境变量。
请检查您是否声明了Java SDK路径。将路径设置为环境变量。
在cmd中输入“javac”(cmd必须具有管理员权限)。
如果编译不成功,
1. 打开JDK位置并复制“bin”的路径
2. 在控制面板中打开系统属性。
3. 高级系统设置->然后选择“环境变量”
4. 点击“新建”
5. 将变量名称设置为“path”,变量值设置为复制的地址
然后再试一次。

我希望你是指“javac”?是的,它已经存在并且可以使用了,环境变量JAVA_HOME也设置正确了。我现在已经做了很多次了,你还有其他想到的吗? - ajc

1
这意味着Java插件正在Android插件之上应用。但我在您的构建文件中没有看到任何突出的问题。一些尝试的方法:
  • 尝试从命令行进行清理构建。这将告诉您是否是Android Studio的问题。
  • 从干净的状态创建一个空应用程序并查看是否可以构建。
  • 更新Android SDK到最新版本
  • 更新Android Studio到最新版本
  • 删除Android Studio项目文件并重新导入
  • 确保您的路径中有正确的Java版本,并且JAVA_HOME设置正确
  • 检查本地lib文件夹中是否有可能冲突的jar文件
  • 尝试使用Android插件的beta版本compile 'com.android.tools.build:gradle:2.3.0-beta2'

我下载了最新的Android SDK。确保我的classpath和JAVA_HOME中有正确的Java版本。你建议使用哪个本地lib文件夹? - ajc
该行代码 compile fileTree(dir: 'libs', include: ['*.jar']) 包含了 {app build directory}/lib 目录下的所有 jar 包。 - Kevin Brotcke

1
我在从KAPT更新到KSP时遇到了这个错误。根据文档,需要添加以下代码:
id 'org.jetbrains.kotlin.jvm'

将Kotlin jvm插件添加到插件块中后,似乎导致了我的Java插件错误。移除该引用后,编译成功。顺便提一下,链接的文档比字面意思更加比喻化。

0
尝试从您的 build.gradle 中删除这两行代码。
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

并且

testCompile 'junit:junit:4.12'

0

尝试这个方法:

1.右键单击项目->打开模块设置F4

2.然后进入SDK位置

3.之后勾选使用嵌入式JDK(推荐)

您可以看到下面给出的图片

enter image description here

构建并运行项目。

您还可以将此添加到您的 build.gradle 文件中。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

我没有NDK捆绑包!这会有什么影响吗? - ajc

0

不确定这是否有帮助,但也许您可以尝试明确添加Java编译选项:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

@ajc,此时此刻,如果我是你,我会开始一个全新的项目,并逐步添加依赖项和代码,直到找到导致问题的原因。如果你发现一个干净的项目也无法正常工作,那么就意味着你的设置有问题。 - Doron Yakovlev Golani
你意识到Android Java与桌面Java不兼容吗?Google在早期进行了一些设计更改,偏离了桌面Java。因此,您无法将桌面Java(Oracle / OpenJDK)库添加到Android项目中。 - Chris Dennett
@ChrisDennett 那么常规的JDK对于Android项目不好用吗? - ajc
除非您使用类似于LibGDX的东西,否则在导出到Android时会存在差距。 - Chris Dennett

-1

检查是否安装了多个JDK。


1
我们如何进行检查? - waseefakhtar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接