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.