Gradle DSL-Methode nicht gefunden: 'compile ()'

78

Ich hatte diesen Gradle-Fehler.

Fehler: (9, 0) Gradle DSL-Methode nicht gefunden: 'compile ()'

Ich habe versucht, auf ähnliche Fragen zu verweisen, aber es hat nicht funktioniert.

Android Gradle Build Fehler: (9, 0) Gradle DSL-Methode nicht gefunden: 'compile ()'.

Fehler "Gradle DSL-Methode nicht gefunden: 'compile ()'" beim Synchronisieren von Build.Gradle

Nicht unterstützte Gradle DSL-Methode gefunden: 'compile ()'!

Mein build.gradleCode ist hier

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.google.android.gms:play-services:6.5.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

build.gradle(Module.app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.example.simplemaker.pushtest"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

Was ist los mit meinem Code?

Entschuldigung für mein Englisch.

Danke vielmals!

T. Akashi
quelle

Antworten:

111

Wie aus der Notiz in der build.gradleDatei Ihres Projekts hervorgeht :

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

Entfernen Sie die 2 Kompilierungsanweisungen in dieser Gradle-Datei:

compile 'com.android.support:appcompat-v7:20.+'
compile 'com.google.android.gms:play-services:6.5.+'

Und lassen Sie dann Ihre anderen (Modul-) build.gradleAbhängigkeiten folgendermaßen aussehen:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:6.5.+'
}
Simas
quelle
Was ist, wenn mein Android-Projekt keine Module hat?
Arun8
i ws mit com.android.support:support-compat:23.0.0 bt es com.android.support:support-v4:23.0.0 war
10101010
36

Ich verwende Android Studio basierend auf IntelliJ Idea und habe die Einstellungen geändert, wann und wie Code umbrochen werden soll. Außerdem hatte ich die Option "Automatisch neu formatieren", die dazu führte, dass Gradle-Dateien zufällig formatiert wurden. Es führte also zu so etwas:

    compile 'de.greenrobot:eventbus:2.4.0' compile 'com.jakewharton:butterknife:7.0.1'

Gradle findet dann keine compile () für die zweite Kompilierung. Da Sie nur eine Abhängigkeit pro Zeile schreiben dürfen.

Bato-Bair Tsyrenov
quelle
Dies ist eine weitere Möglichkeit, warum dieser Fehler auftreten kann @Drew
Bato-Bair Tsyrenov
Ok, es liest sich irgendwie wie eine Frage. Ich wollte nicht, dass es gelöscht wird
Drew
1
Vielen Dank, ich habe gerade festgestellt, dass IDEA meine Gradle-Datei wirklich neu formatiert und zwei Zeilen in einer Zeile erstellt hat. Sie antworten funktioniert für mich.
Speedcell4
Einige zusätzliche Details wären hier nützlich
Chris Nevill
@ ChrisNevill was meinst du?
Bato-Bair Tsyrenov
31

Es ist wirklich ein dummes Problem und ich habe eine Lösung:

as compile Anweisungen gehen in eine Zeile

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"    compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"    compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"    compile "com.google.code.gson:gson:$gsonVersion"

Ich habe mich nur von Zeile zu Zeile geändert und mein Problem gelöst:

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"
compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"
compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
compile "com.google.code.gson:gson:$gsonVersion"

Hoffe es wird dir helfen. Vielen Dank.

Pratik Butani
quelle
Genau das ... aus irgendeinem Grund hatte etwas meine Kompilierungsanweisungen in eine Zeile gezogen
Chris Nevill
Siehe dies: stackoverflow.com/questions/36844572/…
Chris Nevill
Ich hatte einige Erfolge bei der Änderung des "to"
Chris Nevill
Wo ich einen String verwendet habe, hatte ich einige Erfolge: Kompilieren Sie myString + '' (das sind zwei leere Kommas)
Chris Nevill
War vor dem gleichen Problem und das ist die Lösung!
dmSherazi
8

Überprüfen Sie Ihre build.gradle- Dateien. Manchmal, wenn Sie Ihrem aktuellen Modul mithilfe der Projekteinstellungen ein Modul hinzufügen, ist das build.gradle des aktuellen Moduls beschädigt und die Einrückungen sind fehlerhaft. Überprüfen Sie einfach das aktuelle build.gradle und überprüfen Sie, ob alle Kompilierungsanweisungen vorhanden sind werden in einer neuen Zeile ausgegeben!

MohammadReza
quelle
Dies ist genau das, was passiert ist, als ich die "Signatur" -Konfiguration in den Moduleinstellungen aktualisiert habe.
Wahib Ul Haq
7

Zusätzlich zu den oben bereits gegebenen richtigen Antworten - ein Bild für eine detailliertere Erklärung:

Geben Sie hier die Bildbeschreibung ein

Projekt hat 2 build.gradle. Sie benötigen das hervorgehobene: build.gradle (Modul: App)

Alexeev Valeriy
quelle
2

Überprüfen Sie Ihr Projekt. Es gibt 2 build.gradle.

Verschieben Sie Ihre Kompilierungszeile in ein anderes build.gradle

Grauer Wolf
quelle
0

Anwendungsabhängigkeiten müssen in der Datei app -> build.gradle enthalten sein. Nicht in der Datei Project -> build.gradle.

Tharanga
quelle
0

Ein einfacher Fehler kann auch dieses Problem verursachen, ohne classpathAbhängigkeiten zubuild.gradle(Module:app)

Ege Kuzubasioglu
quelle
0

In meinem Fall wurde dieser Fehler angezeigt, weil ich eine Abhängigkeitsimplementierungszeile außerhalb des dependenciesBlocks hatte. Etwas wie das:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    ...
  }

implementation 'androidx.media:media:1.1.0'

Beachten Sie, dass alle Implementierungsaufrufe im Abhängigkeitsblock definiert werden müssen. Das ist die einfache Lösung.

Ich hoffe das hilft jemandem da draußen.

Frohe Codierung!

Taslim Oseni
quelle