programing

Gradle DSL 메서드를 찾을 수 없습니다. 'runProguard'

telebox 2023. 6. 1. 22:40
반응형

Gradle DSL 메서드를 찾을 수 없습니다. 'runProguard'

지난번 프로젝트에서 업데이트한 후 오류가 발생합니다.내 코드에는 문제가 없지만 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**

gradle 플러그인 버전 0.14.0 이상을 사용하는 경우 build.gradle 파일에서 "runProguard""minifyEnabled"로 바꿔야 여기에 이미지 설명 입력합니다.

runProguard의 이름이 버전 0.14.0에서 minifyEnabled로 변경되었습니다.자세한 내용은 Android 빌드 시스템 참조

사용.'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'
        }
    }

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

runProguardminimizeEnabled로 변경하면 문제의 일부가 해결됩니다.

그러나 이 수정으로 인해 "라이브러리 프로젝트가 애플리케이션 ID를 설정할 수 없습니다"가 발생할 수 있습니다(안드로이드 스튜디오 1.0 및 "라이브러리 프로젝트가 애플리케이션 ID를 설정할 수 없습니다" 오류가 발생할 수 있습니다).

build.gradle 파일에서 애플리케이션 ID를 제거하면 이동할 수 있습니다.

runProguard의 이름이 Gradle 버전 0.14.0(2014/10/31) 이상에서 활성화를 최소화하도록 변경되었습니다.

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

여기에 이미지 설명 입력

이것은 Kotlin DSL(build.gradle.kts)용입니다.

buildTypes {
    getByName("release") { // or simply  release {  in newer versions of Android Gradle Plugin (AGP)
      isMinifyEnabled = true
      isShrinkResources = true
      proguardFiles(
        // "proguard-android-optimize.txt" reduces size more than "proguard-android.txt"
        getDefaultProguardFile("proguard-android-optimize.txt"),
        "proguard-rules.pro"
      )
      signingConfig = signingConfigs.getByName("mySigningConfig")
    }
}

최상위 빌드 파일에서 Android Gradle Plugin(AGP) 버전 7을 사용하고 있습니다.

buildscript {
  // ...
  dependencies {
      classpath("com.android.tools.build:gradle:7.0.4")
      // ...
  }
}

언급URL : https://stackoverflow.com/questions/27078075/gradle-dsl-method-not-found-runproguard

반응형