【问题标题】:Fix Gradle incompatibility issue when importing Android sample project修复导入 Android 示例项目时 Gradle 不兼容问题
【发布时间】:2014-03-28 17:12:50
【问题描述】:

Android Studio (0.5.3) 快把我逼疯了。

我从来没有遇到过 Eclipse 和 ADT 的任何严重问题。 Android Studio 是另一回事:我无法使用它正确构建单个项目。

所以,我正在尝试导入一个 Android 示例项目(我认为它具有正确的 Gradle 设置并且应该可以导入):

C:\pathToMyAndroidSDK\sdk\samples\android-19\content\StorageProvider

我得到的第一个错误如下:

Failed to refresh Gradle project 'StorageProvider'
The project is using an unsupported version of Gradle. Please use version 1.10.
Please point to a supported Gradle version in the project's Gradle settings or in the project's Gradle wrapper (if applicable.)
Fix Gradle wrapper and re-import project Gradle settings

好的,所以我下载了 Gradle 1.10,并更改了项目 Gradle 设置,以便它使用这个本地 Gradle 分发而不是默认的 gradle 包装器(它似乎包含在示例项目中)。

这次我得到一个不同的错误:

Failed to refresh Gradle project 'StorageProvider'
The project is using an unsupported version of the Android Gradle plug-in (0.8.3).
Version 0.9.0 introduced incompatible changes in the build language.
Please read the migration guide to learn how to update your project.

我对 Gradle 的了解不够,无法自己迁移配置,我也不想这样做。

我怎样才能简单地使用 gradle 包装器而不被召唤使用 Gradle 1.10(与项目不兼容)? 也欢迎任何其他解决方案。

注意:我曾尝试使用 android-19 文件夹中的其他示例项目,但得到相同的错误。


编辑:

我更幸运地尝试在 Linux 下使用命令行 (gradlew build) 进行构建。

构建成功,不管我在build.gradle中设置了什么:

classpath 'com.android.tools.build:gradle:0.9.+'

classpath 'com.android.tools.build:gradle:0.8.+' #(the original configuration of the sample project)

所以我的问题似乎是由 Android Studio 中的错误引起的。

【问题讨论】:

    标签: android android-studio gradle android-gradle-plugin build.gradle


    【解决方案1】:

    不了解gradle,解决这个问题是相当困难的。

    同时Android Studio是一个alpha版本,所以可以快速变化,每个版本都可以引入不兼容的变化

    这里是第一个阅读有关 Android Studio 项目的文档: https://developer.android.com/sdk/installing/studio-build.html

    您使用的是 AS 0.5.3,因此您必须使用 gradle 1.10/1.11 和 gradle 插件 0.9.x

    这意味着在你的 build.gradle 脚本中你必须使用:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.+'
        }
    }
    

    可能在你的文件中你有 0.8.3。

    您还必须使用 gradle 1.10/1.11。 您应该有一个文件夹 project_folder/gradle/wrapper,其中有一个文件 gradle-wrapper.properties。

    您必须在此处更改 distributionUrl 键以使用以下版本之一:

    distributionUrl=http://services.gradle.org/distributions/gradle-1.10-all.zip

    Android Studio - Gradle - Gradle 插件有一些关系:

    Android Studio Gradle issue upgrading to version 0.5.0 - Gradle Migrating From 0.8 to 0.9 - Also Android Studio upgrade to 0.8.1

    在这些更改之后,您的 gradle 脚本可能会出现其他问题。

    【讨论】:

    • 为什么我需要独立安装 Gradle 和 Gradle 插件(不同版本)?
    • 该插件是针对android的,而gradle是一个通用的构建系统
    • 这是正确的解决方案。在某些版本中,distributionUrl 是旧的,因此更改将解决问题
    • 我已经按照这些确切的步骤操作,我得到“该项目正在使用不受支持的 Gradle 版本。请使用 1.10 版。”当我将类路径更改为 1.10 时,它说找不到 Gradle 版本
    • @Spentak 检查链接stackoverflow.com/questions/22252956/… 以获得您的版本。
    【解决方案2】:

    唯一对我有用的是改变 Android Studio 去哪里搜索 gradle 文件。

    使用 gradle 2.10 及更高版本的 gradle-wrapper.properties(自动生成)要容易得多

    不要忘记按照此处的建议对 gradle-wrapper.properties 进行版本控制: https://docs.gradle.org/current/userguide/gradle_wrapper.html

    【讨论】:

      【解决方案3】:

      在项目结构设置中如下图:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-26
        相关资源
        最近更新 更多