java - Gradle 包装器版本问题

标签 java android gradle version

我的任务是通过命令行使用 gradle wrapper 构建一个 apk 文件。我在 Android Studio 2.2.3 中有一个项目,它在 build.gradle 文件 classpath 'com.android.tools.build:gradle:2.2.3' 中有一行,这应该意味着它正在使用 gradle 版本 2.2.3。但是当我从项目文件夹中调用 gradlew 命令时,总是出现同样的错误:Unsupported major.minor version 52.0

我已经使用 gradlew -v 来识别我的 gradle 版本,现在是 2.2.1。尽管当我手动将 build.gradle 文件中的 gradle 版本从 2.2.3 更改为 2.2.1 时,我仍然遇到相同的错误。

我检查了我电脑上包含gradle的文件夹。它有 gradle 版本 2.14.1

我试过:

  • 将 JDK 路径从 1.7 更改为 1.8(JAVA_HOME 变量)

  • 在项目结构 -> SDK 位置设置中手动更改 JDK 位置

  • 在 gradle 设置中:在使用默认 gradle 包装器和本地 gradle 分发之间切换。

有趣的是,当我将 build.gradle 中的 gradle 版本更改为 1.5.0 时,版本错误消失了,但我无法再进行任何构建(它变得无法合并多个 jar 文件到一个 apk 文件)

这个版本是什么鬼,我该如何摆脱这个错误?

编辑#1:

我的 /gradle/wrapper/gradle-wrapper.properties 内容是:

#Fri Oct 21 12:53:56 EEST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

编辑#2:

我发现 gradle 版本是一样的。那么我应该使用什么版本的 JDK 和 JRE 以及如何更新它们呢?简单地下载到 Java 文件夹并更改项目结构中的 JDK 位置没有帮助。 enter image description here

编辑#3:

我的 build.gradle 文件:

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

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:1.5.0-beta2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

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

我的项目级build.gradle文件:

apply plugin: 'com.android.application'


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.test.test"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

    compile 'com.android.support:design:23.4.0'
    compile "com.android.support:support-v4:23.4.0"
    compile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

解决方案:

我需要将 targetSdkVersion 和所有依赖项更新到版本 25,并将 JAVA_HOME 设置为 jdk 1.8。谢谢,Abhishek Aryan

最佳答案

Gradle 版本不同于 Android Plugin for Gradle 版本。

这是 Gradle 版本的 Android 插件

classpath 'com.android.tools.build:gradle:2.2.3'

和gradle版本

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

关于java - Gradle 包装器版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42093530/

相关文章:

java - 从字符串中提取多个子字符串(例如 "B#####",其中 # 是所有可能的数字) - Java - Android

安卓 Gradle 项目

java - 编写接受字符串并返回字符数组的方法时遇到问题

android - 默认 DatePicker 和 TimePicker 标签未本地化

java - 如何解决这个: "Error occurred during initialization of VM; Could not reserve enough space for object heap"

android - 如何在表格布局中设置列之间的分隔线?

gradle - Gradle,Sonar,三叶草插件的兼容版本?

android - 如何将 Gradle 缓存复制到另一台离线机器?

java - 如何使用 XML 覆盖 @Autowired

java - hystrix java.lang.NoSuchMethodError : rx. 主题.BehaviorSubject.hasValue()Z