使用Windows上的Gradle从命令行构建Android应用程序:版本太旧了

时间:2017-04-15 16:45:04

标签: android android-studio gradle

前言:我知道有很多关于我得到的错误的问题,但我仍然不认为我的问题是重复的,因为似乎所有旧问题都指的是使用Android Studio构建而我是我试图从Windows上的命令行构建一个Android应用程序。

所以我们走了:我刚刚在Windows 7系统上安装了最新的Android Studio,Android NDK和JDK 8。我创建了一个build.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.3.1'

        // 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
} 

当我打开命令行并输入gradle wrapper时,我收到以下错误:

Build file 'D:\TestProject\app\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Minimum supported Gradle version is 3.3. Current version is 3.2. If using the gradle wrapper, try editing the distributionUrl in D:\TestProject\gradle\wrapper\gradle-wrapper.properties to gradle-3.3-all.zip

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.085 secs

我无法遵循错误消息中提供的建议,因为文件D:\TestProject\gradle\wrapper\gradle-wrapper.properties尚不存在。 AFAIU,这个东西是包装器的一部分,应该通过调用gradle wrapper生成,因此提示我修改一个不存在的文件对我来说没有多大意义。

更令人困惑的是,当我在Android Studio中打开Goog​​le提供的HelloJNI测试项目并转到File/Project Structure/Project时,Gradle版本显示为3.3。但是,查看C:\Program Files\Android\Android Studio\gradle内部显示我只安装了3.2,而不是3.3,因为gradle-3.2内只有C:\Program Files\Android\Android Studio\gradle目录。

所以这一切都令人困惑,我对如何解决这个问题缺乏想法。这就是为什么我们非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

  

当我打开命令行并键入gradle wrapper时,我收到以下错误

实际运行这一事实意味着您安装了Gradle的独立本地副本。您还没有运行Gradle Wrapper,因为它是./gradlew,而不是gradle

因此,请访问the Gradle installation site并将Gradle的独立本地副本升级到3.3。

答案 1 :(得分:0)

在您的热门build.gradle文件中添加以下内容:

task wrapper(type: Wrapper) {
  gradleVersion = "3.5"
}

然后运行命令:

gradlew wrapper

完成此操作后,您应该能够与IDE重新同步。