2014-11-22 8 views
477

Ich bekomme einen Fehler nach der Aktualisierung von meinem letzten Projekt. Kein Problem in meinem Code, aber ich habe Probleme mit build.gradle. Wie kann ich es reparieren?Gradle DSL-Methode nicht gefunden: 'runProguard'

build.gradle Code hier:

apply plugin: 'android' 

android { 
    compileSdkVersion 21 
    buildToolsVersion '20.0.0' 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/ASL2.0' 
    } 

    defaultConfig { 
     applicationId 'com.xxx.axxx' 
     minSdkVersion 14 
     targetSdkVersion 19 
     versionCode 6 
     versionName '1.0' 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:19.+' 
    compile files('libs/commons-codec-1.8.jar') 
    compile files('libs/asmack-android-8-4.0.4.jar') 
    compile 'com.android.support:support-v4:21.0.0' 
    compile 'com.google.code.gson:gson:2.2.4' 
    compile 'com.jakewharton:butterknife:5.1.1' 
} 

Gradle Sync Meldung ausgegeben:

Error:(27, 0) Gradle DSL method not found: 'runProguard()' 
**Possible causes: 
The project 'Atomic4Mobile' may be using a version of Gradle that does not contain the method. 
**Gradle settings** 
The build file may be missing a Gradle plugin. 
**Apply Gradle plugin** 
+130

Try 'minifyEnabled' statt' runProguard'. – CommonsWare

+0

@CommonsWare funktioniert für mich – phmagic

+0

Ich kann immer noch nicht glauben, dass das so viele Upvotes bekommen hat. Bleiben Sie auf dem Laufenden mit den Änderungen hier: http://tools.android.com/tech-docs/new-build-system. –

Antwort

812

enter image description here Wenn Sie Version 0.14.0 oder höher der gradle-Plugin verwenden, sollten Sie ersetzen " runProguard " mit " minifyEnabled " in Ihren Build.Gradle-Dateien.

runProguard wurde 0.14.0 zu minifyEnabled in Version umbenannt. Weitere Informationen: See Android Build System

+4

Die Quelle dafür ist [hier] (http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0). –

+3

gibt es zwei build.gradle-Dateien, die innere, die eine im app-Unterverzeichnis, ist die eine. – barlop

+0

Fehler: (26, 0) Gradle DSL-Methode nicht gefunden: 'classpath()' Mögliche Ursachen: Das Projekt 'Sample' verwendet möglicherweise eine Version von Gradle, die die Methode nicht enthält. – Prasad

279

Die Verwendung von 'minifyEnabled' anstelle von 'runProguard' funktioniert ordnungsgemäß.

Previous code :

buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 

Current code :

buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 

Hoffnung, das hilft.

+1

siehe diesen Screenshot http://i.stack.imgur.com/20vO7.png –

71

Wenn Sie zu 1.0.0 migrieren, müssen Sie die folgenden Eigenschaften ändern.

In der build.gradle-Datei des Projekts müssen Sie minifyEnabled ersetzen.

Daher Ihren Neubau Typ

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'  } 
    } 

Stellen Sie außerdem sicher sein, dass gradle Version 1.0.0 wie

classpath 'com.android.tools.build:gradle:1.0.0' 

in der build.gradle Datei.

Dies sollte das Problem lösen.

Quelle: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

17

Durch Änderung runProguard zu minifyEnabled, ein Teil der Emission festgelegt wird.

Die Fehlerbehebung kann jedoch dazu führen, dass "Bibliotheksprojekte die Anwendungs-ID nicht festlegen können" (Sie finden den Fehler hier Android Studio 1.0 and error "Library projects cannot set applicationId").

Durch Entfernen der Anwendungs-ID in der Datei build.gradle sollten Sie gut gehen.

+0

Versuchen Sie, die Antwort hier zu verfolgen und geben Sie dann den Link dazu. – codebot

+0

Jemand sollte das schon gesagt haben. Groß! Nachdem Sie ** minifyEnabled ** ausgeführt haben, müssen Sie dies auch in buld.gradle aller externen Bibliotheksprojekte tun. – sud007

1

runProguard wurde 0,14 in Version minifyEnabled umbenannt.0 (2014/10/31) oder mehr in Gradle.

Um dies zu beheben, müssen Sie runProguard zu minifyEnabled in der Datei build.gradle Ihres Projekts ändern.

enter image description here

Verwandte Themen