Metode DSL Gradle tidak ditemukan: 'runProguard'

497

Saya mendapatkan kesalahan setelah memperbarui dari proyek terakhir saya. Bukan masalah dalam kode saya tapi saya mengalami masalah dengan build.gradle. Bagaimana saya bisa memperbaikinya?

kode build.gradle di sini:

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

Output pesan Sync Gradle:

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**
abaci
sumber
132
Coba minifyEnabledalih-alih runProguard.
CommonsWare
@CommonsWare bekerja untuk saya
phmagic
Saya masih tidak percaya ini mendapat begitu banyak upvotes. Ikuti perkembangan perubahan di sini: tools.android.com/tech-docs/new-build-system .
Jared Burrows
tidak bekerja untuk saya
Dr. aNdRO

Jawaban:

819

masukkan deskripsi gambar di siniJika Anda menggunakan versi 0.14.0 atau lebih tinggi dari plugin gradle, Anda harus mengganti "runProguard" dengan "minifyEnabled" di file build.gradle Anda.

runProguard diubah namanya menjadi minifyEnabled di versi 0.14.0. Untuk info lebih lanjut, Lihat Sistem Android Build

Babatunde Adeyemi
sumber
4
Sumber untuk ini ada di sini .
Chris Cirefice
3
ada dua file build.gradle, yang dalam, yang ada di subdirektori aplikasi, adalah satu.
barlop
Kesalahan: (26, 0) Metode DSL Gradle tidak ditemukan: 'classpath ()' Kemungkinan penyebab: Proyek 'Sampel' mungkin menggunakan versi Gradle yang tidak mengandung metode.
Prasad
279

Menggunakan 'minifyEnabled'bukannya 'runProguard'berfungsi dengan benar.

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

Semoga ini membantu.

amitabha2715
sumber
72

Jika Anda bermigrasi ke 1.0.0, Anda perlu mengubah properti berikut.

Dalam file build.gradle Proyek Anda perlu mengganti minifyEnabled.

Oleh karena itu tipe build baru Anda seharusnya

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

Pastikan juga versi gradle seperti 1.0.0

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

dalam file build.gradle .

Ini harus menyelesaikan masalah.

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

Bhargav Jhaveri
sumber
17

Dengan mengubah runProguard untuk minifyEnabled , bagian dari masalah diperbaiki.

Tetapi perbaikan dapat menyebabkan "Proyek Perpustakaan tidak dapat mengatur Id aplikasi" (Anda dapat menemukan perbaikan untuk ini di sini Android Studio 1.0 dan kesalahan "Proyek perpustakaan tidak dapat mengatur applicationId" ).

Dengan menghapus Id aplikasi dalam file build.gradle, Anda harus melakukannya dengan baik.

Sandeep Kumar
sumber
Cobalah untuk melacak jawabannya di sini dan kemudian berikan tautannya.
codebot
Seseorang seharusnya sudah mengatakan itu. Bagus! Setelah melakukan minifyEnabled , perlu melakukan ini juga di buld.gradle dari semua proyek perpustakaan eksternal juga.
sud007
0

runProguard telah diubah namanya menjadi minifyEnabled di versi 0.14.0 (2014/10/31) atau lebih di Gradle.

Untuk memperbaiki ini, Anda perlu mengubah runProguard untuk minifyEnabled di file build.gradle proyek Anda.

masukkan deskripsi gambar di sini

Biswajit Karmakar
sumber