No se encontró el método DSL de Gradle: 'compile ()'


78

Tuve este error de Gradle.

Error: (9, 0) Método DSL de Gradle no encontrado: 'compile ()'

Intenté hacer referencia a preguntas similares pero no funcionó.

Error de compilación de Android gradle: (9, 0) Método DSL de Gradle no encontrado: 'compile ()'.

Obteniendo el error "No se encontró el método DSL de Gradle: 'compile ()'" al sincronizar Build.Gradle

Se encontró un método DSL de Gradle no compatible: 'compile ()'!

Mi build.gradlecodigo esta aqui

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

¿Qué pasa con mi código?

Lo siento por mi ingles.

¡Muchas gracias!


Respuestas:


111

Como build.gradlesugiere la nota del archivo de su proyecto :

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

Elimine las 2 declaraciones de compilación en ese archivo gradle:

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

Y luego haga que sus otras build.gradledependencias (del módulo) se vean así:

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.+'
}

¿Qué pasa si mi proyecto de Android no tiene módulos?
— arun8

Estoy usando com.android.support:support-compat:23.0.0 bt era com.android.support:support-v4:23.0.0
— 10101010

36

Estoy usando Android Studio basado en IntelliJ Idea y he cambiado la Configuración sobre cuándo y cómo ajustar el código. También tenía opciones de 'reformatear automáticamente' que conducen a formatear archivos Gradle al azar. Entonces conduce a algo como esto:

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

Gradle luego no puede encontrar compile () para la segunda compilación. Como solo permitiste escribir una dependencia por línea.


Esta es otra posibilidad de por qué puede ocurrir este error @Drew
— Bato-Bair Tsyrenov

Ok, parece una pregunta. No quería que lo borraran
— Drew

1
Gracias, descubrí que IDEA realmente reformateó mi archivo Gradle e hizo dos líneas en una. Tu respuesta funciona para mí.
— speedcell4

Algunos detalles adicionales serían útiles aquí
— Chris Nevill

@ChrisNevill ¿qué quieres decir?
— Bato-Bair Tsyrenov

31

Es un problema realmente tonto y tengo una solución:

como las declaraciones de compilación van en una línea

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"

Acabo de cambiar a continuación por la siguiente línea y resolví mi problema:

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"

Espero que te ayude. Gracias.


Exactamente esto ... por alguna razón, algo había sacado mis declaraciones de compilación en una línea
— Chris Nevill


He tenido cierto éxito al cambiar el "a"
— Chris Nevill

Cuando estaba usando una cadena, tuve cierto éxito al hacerlo: compile myString + '' (son dos comas vacías)
— Chris Nevill

¡Estaba enfrentando el mismo problema y esta es la solución!
— dmSherazi

8

Verifique sus archivos build.gradle , a veces cuando agrega un módulo a su módulo actual usando la configuración del proyecto, el build.gradle del módulo actual está dañado y las sangrías están rotas, solo verifique el build.gradle actual y verifique si todas las declaraciones de compilación se emiten en una nueva línea!


Esto es exactamente lo que sucedió cuando actualicé la configuración de "firma" en Configuración del módulo.
— Wahib Ul Haq

7

además de las respuestas adecuadas ya dadas anteriormente, una imagen para una explicación más detallada:

ingrese la descripción de la imagen aquí

El proyecto tiene 2 build.gradle. Necesita el resaltado: build.gradle (Módulo: aplicación)


2

Revisa tu proyecto. hay 2 build.gradle.

Mueva su línea de compilación a otra build.gradle


0

Las dependencias de la aplicación deben incluir en la aplicación -> archivo build.gradle . No en Proyecto -> archivo build.gradle.


0

Un simple error también puede causar este problema, no incluya classpathdependencias parabuild.gradle(Module:app)


0

En mi caso, recibí este error porque tenía una línea de implementación de dependencia fuera del dependenciesbloque. Algo como esto:

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

implementation 'androidx.media:media:1.1.0'

Tenga en cuenta que todas las llamadas de implementación deben definirse dentro del bloque de dependencias. Esa es la solución simple.

Espero que esto ayude a alguien.

¡Feliz codificación!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.