Gradle Метод DSL не найден: 'реализация()'

У меня была эта ошибка

Error:(45, 0) Gradle DSL method not found: 'implementation()'
Possible causes:<ul><li>The project 'LaTaxi2' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
<a href="fixGradleElements">Upgrade plugin to version 2.3.3 and sync project</a></li><li>The project 'LaTaxi2' may be using a version of Gradle that does not contain the method.
<a href="open.wrapper.file">Open Gradle wrapper file</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>

build.gradle content

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


buildscript {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
//        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        /* CHANGE to classpath 'com.android.tools.build:gradle:2.3.3'  for STABLE BUILD TOOL VERSION*/
//        classpath 'com.android.tools.build:gradle:3.0.0-alpha7'
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.1.0'
        // We recommend changing it to the latest version from our changelog:
        // https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin

        classpath 'io.fabric.tools:gradle:1+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}


allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
//        google()
        jcenter()
    }
}

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

build .gradle приложение модуля

apply plugin: 'com.android.application'

apply plugin: 'io.fabric'

repositories {
    maven {
        url 'https://maven.google.com'
    }
//    google()
    maven { url 'https://maven.fabric.io/public' }
}

android {
    compileSdkVersion 25
    buildToolsVersion '26.0.0'
    defaultConfig {
        applicationId "in.techware.lataxi"
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 5
        versionName "1.0.4"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    /* Remove This to remove Crashlytics and Fabric */

    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
        transitive = true;
    }
/*    compile('com.digits.sdk.android:digits:[email protected]') {
        transitive = true;
    }*/
    implementation 'com.android.support:appcompat-v7:25.4.0'
    implementation 'com.android.support:design:25.4.0'
    implementation 'com.android.support:recyclerview-v7:25.4.0'
    implementation 'com.squareup.okhttp3:okhttp:3.8.1'
    implementation 'com.android.support:cardview-v7:25.4.0'
    implementation 'com.github.bumptech.glide:glide:3.8.0'
    implementation 'com.google.android.gms:play-services-maps:11.0.2'
    implementation 'com.google.android.gms:play-services-location:11.0.2'
    implementation 'com.google.android.gms:play-services-places:11.0.2'
    implementation 'com.google.firebase:firebase-auth:11.0.2'
    implementation 'com.google.firebase:firebase-messaging:11.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
    implementation 'com.google.code.gson:gson:2.8.0'
    testCompile 'junit:junit:4.12'
}







apply plugin: 'com.google.gms.google-services'

Ответ 1

Чтобы использовать DSL implementation(), вы должны использовать:

  • Обновленный плагин gradle для Android 3.0.0
  • gradle версия 3.4 или новее

Затем в build.gradle вы должны использовать:

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

В gradle-wrapper.properties

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

Подробнее информация здесь.

Ответ 2

или если вы не хотите обновляться до последней версии Gradle, вернитесь к использованию DSL-метода compile() вместо implementation()

Ответ 3

У меня была такая простая причина, по которой это не сработало, поэтому я должен опубликовать свой ответ, чтобы никто другой не прошел через это.

Не помещайте репозитории и зависимости в файл с именем build.gradle(Projet: YourProjectName) ! В этом файле есть комментарий:

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

Хорошая работа тому, кто положит эту записку туда. Вместо этого поместите свои репозитории и зависимости в файл модуля с build.gradle(Module: app) названием build.gradle(Module: app).

Там уже должна быть функция dependencies. Вам может понадобиться добавить функцию хранилища. В моем случае это было:

repositories {
    maven { url "https://jitpack.io" }
}

Это должно позволить вам синхронизировать и распознавать implementation.

Ответ 4

Вы используете турецкое рабочее пространство, изменение ниже решает проблему

testImplementation -> testİmplementation,
androidTestImplementation -> androidTestİmplementation
androidTestImplementation -> androidTestİmplementation

Ответ 5

implementation() заменило конфигурацию compile(), которая к концу 2018 года будет УСТАРЕТЬ.

Чтобы исправить ошибки и использовать их, необходимо обновить до Android Gradle Plugin 3.0.0 (или выше). В результате этого обновления вам также необходимо обновить Gradle до Gradle 4.1 (или выше). Вам также необходимо использовать Build Tools 26.0.2 (или выше), то есть обновить ваш buildToolsVersion в вашем build.gradle или просто полностью удалить его оттуда (так как, начиная с 3.0.0, по умолчанию используется минимальная требуемая версия), Вам также необходимо обновить Android Studio 3 (или выше), чтобы использовать эти расширенные версии.

Вы можете прочитать о журнале изменений плагина Android 3.0, улучшенном времени компиляции и многом другом здесь: https://developer.android.com/studio/releases/gradle-plugin#3-0-0

Так как же обновить Android Gradle Plugin и Gradle?

ВАРИАНТ 1: Вручную

В вашем build.gradle найдите свой путь к классу Gradle и обновите версию до Gradle 3.0. Также следует добавить репозиторий google() maven:

buildscript {
    repositories {
        jcenter()
        google()
    }

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

В gradle-wrapper.properties найдите ваш дистрибутивUrl и обновите его до:

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

ВАРИАНТ 2: через свойства проекта (но обратите внимание, что ручная конфигурация переопределит его)

Перейдите в Файл → Структура проекта → Проект

enter image description here

И последнее, вы также можете выбрать, заменять ли compile() реализацией() или api(). По умолчанию я бы предложил использовать только реализацию(). Вы можете прочитать больше о различиях здесь: https://developer.android.com/studio/build/dependencies

Ответ 6

В моем случае это была просто опечатка. Это был дополнительный знак "/" после одного из рядов