Không tìm thấy phương thức DSL cấp: 'runProguard'


497

Tôi nhận được một lỗi sau khi cập nhật từ dự án cuối cùng của tôi. Không phải là vấn đề trong mã của tôi nhưng tôi gặp sự cố với build.gradle. Làm thế nào tôi có thể sửa chữa nó?

mã build.gradle tại đây:

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

Đầu ra tin nhắn Gradle Sync:

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**

132
Hãy thử minifyEnabledthay vì runProguard.
CommonsWare

@CommonsWare làm việc cho tôi
phmagic

Tôi vẫn không thể tin rằng điều này có rất nhiều sự ủng hộ. Luôn cập nhật với những thay đổi ở đây: tools.android.com/tech-docs/new-build-system .
Jared Burrows

không làm việc cho tôi
Tiến sĩ aNdRO

Câu trả lời:


819

nhập mô tả hình ảnh ở đâyNếu bạn đang sử dụng phiên bản 0.14.0 trở lên của plugin gradle, bạn nên thay thế "runProguard" bằng "minifyEnabled" trong các tệp build.gradle của mình.

runProguard đã được đổi tên thành minifyEnables trong phiên bản 0.14.0. Để biết thêm thông tin, hãy xem Hệ thống xây dựng Android


4
Nguồn cho việc này là ở đây .
Chris Cirefice

3
có hai tệp build.gradle, tệp bên trong, tệp trong thư mục con ứng dụng, là tệp.
barlop

Lỗi: (26, 0) Không tìm thấy phương thức DSL cấp: 'classpath ()' Nguyên nhân có thể: Dự án 'Mẫu' có thể đang sử dụng phiên bản Gradle không chứa phương thức.
Prasad

279

Sử dụng 'minifyEnabled'thay vì 'runProguard'hoạt động đúng.

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

Hi vọng điêu nay co ich.


72

Nếu bạn đang di chuyển sang 1.0.0, bạn cần thay đổi các thuộc tính sau.

Trong tệp build.gradle của Project, bạn cần thay thế minifyEnables.

Do đó loại xây dựng mới của bạn phải là

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

Cũng đảm bảo rằng phiên bản gradle là 1.0.0 như

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

trong tệp build.gradle .

Điều này sẽ giải quyết vấn đề.

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


17

Bằng cách thay đổi runProguard thành minifyEnables , một phần của vấn đề đã được khắc phục.

Nhưng bản sửa lỗi có thể gây ra "Dự án thư viện không thể đặt Id ứng dụng" (bạn có thể tìm thấy bản sửa lỗi này tại đây Android Studio 1.0 và lỗi "Dự án thư viện không thể đặt applicationId" ).

Bằng cách xóa Id ứng dụng trong tệp build.gradle, bạn sẽ thấy ổn.


Hãy thử theo dõi câu trả lời ở đây và sau đó đưa ra liên kết đến nó.
codebot

Ai đó nên đã nói điều đó rồi. Tuyệt quá! Sau khi thực hiện minifyEnables , cũng cần phải làm điều này trong buld.gradle của tất cả các dự án thư viện bên ngoài.
sud007 17/03/2015

0

runProguard đã được đổi tên thành minifyEnables trong phiên bản 0.14.0 (2014/10/31) trở lên trong Gradle.

Để khắc phục điều này, bạn cần thay đổi runProguard thành minifyEnables trong tệp build.gradle của dự án của bạn.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.