오류 : (26, 0) Gradle DSL 방법을 찾을 수 없음 : 'runProguard ()'


136

gradle과 함께 Android Studio 0.9.3을 사용하고 있습니다. 'com.android.tools.build:gradle:0.14.+'

플러그인 적용 : 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0.11"
    }

    signingConfigs{
        releaseConfig{
            storeFile file("xxxxxxx")
            storePassword = "xxxx"
            keyAlias = "xxxx"
            keyPassword = "xxxx"
        }
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig

            // adds version to file name
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.google.code.gson:gson:2.2.+'
}

해당 파일을 변경하지 않고 이전에 컴파일 된 프로젝트에 다음과 같은 오류가 발생합니다. 오류 : (26, 0) Gradle DSL 메서드를 찾을 수 없음 : 'runProguard ()'

그것을 고치는 방법?


1
tools.android.com/tech-docs/new-build-system 참조하십시오 . 그것은 당신에게 그러한 질문을 밝힐 것입니다.
IgorGanapolsky 2016 년

답변:


97

내가 아는 runProguard한로 대체되었습니다 minifyEnabled. 여전히 proguard에 대한 구성을 정의하는 방법을 모르겠지만 Google 검색을 통해 도움을 받으십시오.

편집하다:

(가)의 경우 outFile여기에 읽기 : https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0 그들은 그것을 수행하는 방법에 대해 설명합니다.

요컨대, 그들은 더 복잡한 버전을 사용했습니다.

applicationVariants.all { variant ->

    variant.outputs.each { output ->

        def apk = output.outputFile;
        def newName;

        // newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-" + variant.buildType.name.toUpperCase() + ".apk");
        if (variant.buildType.name == "release") {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-release.apk");
        } else {
            newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-beta.apk");
        }

        output.outputFile = new File(apk.parentFile, newName);

        if (output.zipAlign) {
            output.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
        }

        logger.info('INFO: Set outputFile to ' + output.outputFile + " for [" + output.name + "]");
    }
}

1
이제 오류 : (32, 0)에 문제가 있습니다. com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@1615795에서 'outputFile'속성을 찾을 수 없습니다.
NickF

1
맞습니다. 0.14.0 미만의 변경 사항을 읽고 정확한 변경 도구
Soham

outputFile (현재 대기중인 피어 리뷰 편집)에 대한 오류를 반영하도록 편집했습니다.
RoundSparrow hilltx

1
중복 된 applicationVariants.all { variant ->줄 을 제거 했지만 나머지는 받아 들였습니다
WarrenFaith

나는 다른 방법으로 같은 문제가 있습니다 : Gradle DSL 방법을 찾을 수 없습니다 compileSdkVersion ()
Usman

131

runProguardgradle 파일에서 사용하는 대신을 사용 하십시오 minifyEnabled. 문제가 해결 될 것입니다. runProguard더 이상 사용되지 않으며 곧 작동을 멈출 수 있습니다.

편집하다

를 사용하려면 minifyEnabledgradle을 버전 2.2 이상으로 업데이트해야합니다.


오류는 이제 변경 -> "Gradle을 DSL 방법을 찾을 수 없습니다 'minifyEnable을 ()'"
shaktiman_droid

최신 gradle 빌드 시스템 (2.2)을 설치 했습니까?
Varundroid

같은 오류가 발생합니다. 찾을 수 없습니다. 해결책을 찾았습니까?
Henrique

@Varundroid 아 2.2에 의존합니까? 나는 2.1
shaktiman_droid

6
이어야한다 minifyEnabled(안 minifyEnable)
JRomero

112

app build.gradle 파일을 변경하면 도움이 될 수 있습니다.

낡은:

buildTypes {
    release {

        runProguard false // this line has to be changed

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

새로운:

buildTypes {
    release {

        minifyEnabled false // new version

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

여전히 같은 오류가 발생했다고 제안했습니다.
카란 쿠라나

26

gradle플러그인 의 0.14.0 이상 버전을 사용중인 경우 파일 에서 " runProguard"를 " minifyEnabled"로 바꿔야 build.gradle합니다.

이것을 추가하십시오.

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

minifyEnabled false빌드 유형 이름은 main 또는 androidTest (플러그인에 의해 시행됨) 일 수 없으며 서로 고유해야 함을 의미합니다.

새 버전의 Android Gradle플러그인은 사용하지 않는 리소스를 자동으로 제거 할 수 있습니다. 여기서 가장 큰 장점은 자신의 코드뿐만 아니라 사용중인 라이브러리 (예 : 실제로 앱에서 실제로 사용하지 않는 기능을 지원하기 위해 리소스가 포함 된 곳) 에서 사용되지 않는 리소스를 제거 한다는 것입니다.


@GeorgiAngelov 의견을 접수하게되어 기쁘다. 행복한 코딩
IntelliJ Amiya

25

현재 Gradle을 0.14.4 , 이러한 오류는 컴파일 타임 오류로보고됩니다.

따라서 교체 runProguard false/true해야합니다minifyEnabled false/true

변경 사항은 Android 개발자 블로그 에 나열되어 있습니다 .


21

Gradle 프로젝트를 버전 1.0.0으로 마이그레이션하려면 몇 가지 쉬운 이름 바꾸기 작업이 필요합니다. http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

proguard의 경우 단순히 'runProguard'=> 'minifyEnabled'의 이름을 바꿀 수 있습니다. 다른 사용자는 아래를 참조하십시오.

Renamed Properties in BuildTypes:    
runProguard => minifyEnabled
zipAlign => zipAlignEnabled
jniDebugBuild => jniDebuggable
renderscriptDebug => renderscriptDebuggable

Renamed Properties in ProductFlavors:    
flavorGroups => flavorDimensions
packageName => applicationId
testPackageName => testApplicationId
renderscriptSupportMode => renderscriptSupportModeEnabled
ProductFlavor.renderscriptNdkMode => renderscriptNdkModeEnabled
Other Name changes

InstrumentTest was renamed to androidTest.

Android 문서와 강조 표시는 모두 감사하지만 zipAlign에서 다른 모든 것을 찾을 수있는 곳은 어디입니까? 이 파일을 찾을 수있는 파일은 언급하지 않습니다. 루트 gradle 구성 파일에 표시되지 않습니다.
user919426

3

이는 gradle android 도구가 0.14.3으로 업데이트 되었기 때문입니다. "build.gradle"파일로 교체

classpath 'com.android.tools.build:gradle:0.14.+'

으로:

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

그들이 고칠 때까지…


1

runProguard의 이름 이 Gradle 버전 0.14.0 (2014/10/31)에서 minifyEnabled 로 변경되었습니다 .

이 문제를 해결하려면 프로젝트 의 build.gradle 파일 에서 runProguard를 minifyEnabled로 변경해야합니다 .

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.