【问题标题】:Gradle error Android StudioGradle错误Android Studio
【发布时间】:2017-11-23 21:09:16
【问题描述】:

我正在尝试构建一个项目,但它一直给我这个 gradle 错误 我已将我的 gradle 3.3 和我的 android 插件版本升级到 2.3.3 但它仍然给我错误 任何帮助,将不胜感激 错误:

错误:(40, 0) Gradle DSL 方法未找到:'implementation()' 可能的原因:

  • 项目“sms-mining-android”可能正在使用不包含该方法的 Android Gradle 插件版本(例如,在 1.1.0 中添加了“testCompile”)。 将插件升级到 2.3.3 版本并同步项目
  • 项目“sms-mining-android”可能正在使用不包含该方法的 Gradle 版本。 打开 Gradle 包装文件
  • 构建文件可能缺少 Gradle 插件。 应用 Gradle 插件
  • 事件日志: Gradle 同步失败:在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [com.android.support.constraint:constraint-layout:1.0.2] 的方法 implementation()。

    build.gradle 文件:

    buildscript {
    ext.kotlin_version = '1.1.2-5'
    ext.support_lib_version = '25.3.1'
    ext.junit_version = '4.12'
    ext.constraint_layout_version = '1.0.2'
    ext.rxjava_version = '1.1.3'
    ext.rxandroid_version = '1.1.0'
    ext.mpchart_version='v3.0.2'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }}
    
    allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
    }
    
    task clean(type: Delete) {
    delete rootProject.buildDir
    }
    

    gradle-wrapper.properties 文件:

     #Mon Jun 19 10:49:52 IST 2017
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
    

    【问题讨论】:

    • 检查找不到参数的方法 implementation() [com.android.support.constraint:constraint-layout:1.0.2
    • 我做到了,什么也做不了
    • 上传你的应用.gradle文件

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


    【解决方案1】:

    这是一个经过测试的答案,适用于 Android Studio 3.0 Canary 6。

    将项目级 gradle 类路径中的 gradle 版本升级到更新的版本。

    关于 the official documentation 关于 gradle / gradle 插件版本兼容性的理解,它应该适用于 gradle 插件版本 2.3.3 和 gradle 版本 3.3(如果我错了,任何人都可以纠正我):

    无论如何,我不得不将插件升级到版本 3.0.0-alpha6 以消除错误。为此,请在项目级别 build.gradle 中进行此更改:

    dependencies {
        ...
        classpath 'com.android.tools.build:gradle:3.0.0-alpha6'
    

    请注意,我的 gradle-wrapper.properties (4.1) 中的 gradle 版本与您的不同:

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

    因此,如果您更改这两个文件中的这两行,它应该可以工作。 请注意,@Narendra kumawat 建议的 com.android.tools.build:gradle:3.0.0-alpha4 对我不起作用,我必须使用 alpha6。

    【讨论】:

      【解决方案2】:

      试试这个 gradle 配置,它对我有用:

      buildscript {
      ext.kotlin_version = '1.1.2-5'
      ext.support_lib_version = '25.3.1'
      ext.junit_version = '4.12'
      ext.constraint_layout_version = '1.0.2'
      ext.rxjava_version = '1.1.3'
      ext.rxandroid_version = '1.1.0'
      ext.mpchart_version = 'v3.0.2'
      ext.realm_version = '3.3.2'
      repositories {
          jcenter()
          maven { url 'https://maven.google.com' }
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
          classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
          classpath "io.realm:realm-gradle-plugin:$realm_version"
      
          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
      }
      

      }

      allprojects {
      repositories {
          jcenter()
          maven {
              url "https://maven.google.com"
          }
          maven { url "https://jitpack.io" }
      }
      

      }

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

      }

      repositories中添加maven { url 'https://maven.google.com' }

      并为此配置使用 Android Studio 3.0 预览版。

      【讨论】:

        【解决方案3】:

        只需将其添加到您的项目级 gradle 中

        classpath 'com.android.tools.build:gradle:3.0.0-alpha4'

        这是因为你的应用级 gradle 文件中有 implementation() 方法

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-23
          • 2018-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多