【问题标题】:Downgrade Android Plugin in Android Studio在 Android Studio 中降级 Android 插件
【发布时间】:2018-04-16 00:36:28
【问题描述】:

我有两个安装了 Android Studio 的工作站。第一个是 2.3.3 版,但另一个是 3.0 版。他们都使用 Gradle 3.3。我面临的问题是,当我在 3.0 系统上创建应用程序然后将其转移到 2.3.3 时,它不想构建。我收到了

无法解析配置“:classpath”的所有依赖项。 > 找不到 com.android.tools.build:gradle:3.0.0。 在以下位置搜索: https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar

我比较了从旧版本的 Android Studio 和新版本创建的 build.gradle 文件

3.0版本:

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0
}
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

2.3.3:

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

从 3.0 版本开始,我删除了“google()”,因为它也失败了。

我是 Android 开发的新手,如果您能帮助我解决在两个环境中使用一个项目的问题,我将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    无法解析配置“:classpath”的所有依赖项。 > 找不到 com.android.tools.build:gradle:3.0.0。在以下位置搜索:https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom

    这是因为您使用了错误的存储库。

    如果你想为 gradle 3.x 使用 android 插件,你必须使用:

    buildscript {
        repositories {
            ...
            // You need to add the following repository to download the
            // new plugin.
            google()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.0'
        }
    }
    

    它还需要 gradle v4.+gradle/wrapper/gradle-wrapper.properties 中使用:

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

    如果您使用的是 Android Studio 2.x,则必须将存储库 google() 更改为 maven { url "https://maven.google.com" }

    如果你想使用 gradle 2.3.x 的 android 插件,你可以使用:

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

    您可以将 gradle v.3.3 用于:

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

    当然在这种情况下您不能使用 gradle v.4.x 和插件 3.x 引入的新 DSL,例如 implementation()api() DSL。

    【讨论】:

    • 我在 build.gradle 中设置了依赖项 {classpath 'com.android.tools.build:gradle:2.3.3'} 并在 gradle-wrapper.properties 中设置了 distributionUrl=https\ ://services.gradle.org/distributions/gradle-3.3-all.zip。但现在我收到:评估项目“:app”时出现问题。 > 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [directory 'libs'] 的方法 implementation()。
    • compile 已弃用,现在您应该使用 3.0 以上的实现
    • @Avtontom 如果您使用 gradle 插件 2.3.3,则不能使用 implementation() DSL,因为它是由 gradle 4.x 和 gradle plugin 3.x 引入的
    • 好的,那么我该如何删除该 implementation()。我的主要目标是配置我的 3.0 Android Studio,因此我在那里创建的项目不会在我的大学 PC 上失败,因为我无法将大学 PC 升级到 gradle 4.x
    • 如果你使用 gradle 插件 2.3,你必须使用 compile 而不是 apiimplementation
    【解决方案2】:

    Android 插件 3.0 位于 Google Maven 存储库(google() 行),它需要新的 Gradle。您应该将 Gradle 更新到 4.1 版。

    打开文件gradle/wrapper/gradle-wrapper.properties并设置

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

    【讨论】:

      【解决方案3】:

      如果您使用的是 android studio ,请转到 gradle-wrapper.properties 并将 gradle 从 4.1 更改为 3.3

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

      转到顶级gradle并将gradle版本从3.0.0更改为2.3.3,然后它应该可以正常工作了。

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

      如果您使用的是 android studio >3.0,则转到 gradle-wrapper.properties 并将 gradle 更改为 4.1

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

      转到顶级 gradle 并从 3.0.0 更改 gradle 版本,然后它应该可以正常工作。

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

      【讨论】:

        猜你喜欢
        • 2015-02-17
        • 1970-01-01
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-05
        • 2023-03-25
        • 1970-01-01
        相关资源
        最近更新 更多