ไม่พบวิธีการ Gradle DSL: 'runProguard'


497

ฉันได้รับข้อผิดพลาดหลังจากอัพเดตจากโปรเจ็กต์สุดท้ายของฉัน ไม่ใช่ปัญหาในรหัสของฉัน แต่ฉันมีปัญหากับ build.gradle ฉันจะแก้ไขได้อย่างไร

รหัส build.gradle ที่นี่:

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 เอาท์พุทข้อความ:

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
ลองแทนminifyEnabled runProguard
CommonsWare

@CommonsWare ใช้งานได้สำหรับฉัน
phmagic

ฉันยังไม่อยากเชื่อว่ามันจะมีผู้อัปโหลดมากมาย เข้าพักได้ถึงวันที่มีการเปลี่ยนแปลงที่นี่: tools.android.com/tech-docs/new-build-system
Jared Burrows

ไม่ทำงานกับฉัน
ดร. aNdRO

คำตอบ:


819

ป้อนคำอธิบายรูปภาพที่นี่หากคุณใช้เวอร์ชั่น 0.14.0 หรือสูงกว่าของปลั๊กอินการไล่ระดับสีคุณควรแทนที่"runProguard"ด้วย"minifyEnabled"ในไฟล์ build.gradle ของคุณ

runProguardถูกเปลี่ยนชื่อเป็นminifyEnabledในเวอร์ชัน 0.14.0 สำหรับข้อมูลเพิ่มเติมโปรดดูระบบ Android Build


4
แหล่งที่มาของเรื่องนี้ก็คือที่นี่
Chris Cirefice

3
มีไฟล์ build.gradle สองไฟล์หนึ่งไฟล์ภายในหนึ่งไฟล์ในไดเร็กทอรีย่อยของแอปเป็นไฟล์เดียว
barlop

ข้อผิดพลาด: (26, 0) ไม่พบวิธีการ Gradle DSL: 'classpath ()' สาเหตุที่เป็นไปได้: โครงการ 'ตัวอย่าง' อาจใช้ Gradle รุ่นที่ไม่มีวิธีการ
Prasad

279

ใช้'minifyEnabled'แทนการ'runProguard'ทำงานอย่างถูกต้อง

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

หวังว่านี่จะช่วยได้


72

หากคุณกำลังย้ายไปยัง 1.0.0 คุณจะต้องเปลี่ยนคุณสมบัติต่อไปนี้

ในไฟล์build.gradleของโครงการคุณต้องแทนที่ minifyEnabled

ดังนั้นประเภทการสร้างใหม่ของคุณควรเป็น

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

ตรวจสอบให้แน่ใจว่าเวอร์ชัน gradle เป็น 1.0.0 เช่น

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

ในไฟล์build.gradle

สิ่งนี้ควรแก้ปัญหา

ที่มา: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0


17

ด้วยการเปลี่ยนrunProguardเป็นminifyEnabledส่วนหนึ่งของปัญหาจะได้รับการแก้ไข

แต่การแก้ไขอาจทำให้ "โครงการห้องสมุดไม่สามารถตั้งค่ารหัสแอปพลิเคชัน" (คุณสามารถค้นหาการแก้ไขสำหรับที่นี่Android Studio 1.0 และข้อผิดพลาด "โครงการห้องสมุดไม่สามารถตั้งค่ารหัสแอปพลิเคชัน" )

โดยการลบรหัสแอปพลิเคชันในไฟล์ build.gradle คุณน่าจะดี


ลองติดตามคำตอบที่นี่แล้วให้ลิงค์กับมัน
codebot

ใครบางคนควรบอกว่าแล้ว ที่ดี! หลังจากทำminifyEnabledแล้วให้ทำเช่นนี้ใน buld.gradle ของโครงการไลบรารีภายนอกทั้งหมดเช่นกัน
sud007

0

runProguardถูกเปลี่ยนชื่อเป็นminifyEnabledในเวอร์ชั่น 0.14.0 (2014/10/31) หรือมากกว่าใน Gradle

ในการแก้ไขปัญหานี้คุณต้องเปลี่ยน runProguard เป็น minifyEnabled ในไฟล์build.gradleของโครงการของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.