エラー:(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 2015年

回答:


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 2014年

1
それは正しいです。正確な変更を知るには、0.14.0での変更を読んでくださいtools.android.com/tech-docs/new-build-system
Soham

outputFileに関するエラーを反映するように編集しました(現在待機中のピアレビューを編集します)
RoundSparrow hilltx

1
重複したapplicationVariants.all { variant ->行を削除しましたが、残りを受け入れました。ありがとう
WarrenFaith

私は別の方法で同じ問題があります:Gradle DSLメソッドが見つかりませんcompileSdkVersion()
Usman

131

runProguardGradleファイルで使用する代わりに、を使用してみてくださいminifyEnabled。これで問題が解決します。runProguardは非推奨であり、間もなく動作を停止します。

編集

を使用するにはminifyEnabled、gradleをバージョン2.2以降に更新する必要があります。


エラーは今に変更される- > "GradleのDSLメソッドが見つかりません: 'minifyEnableを()'"
shaktiman_droid

最新のGradleビルドシステム(2.2)をインストールしましたか?
Varundroid、2014年

同じエラーが発生します。minifyEnableが見つかりません。解決策は見つかりましたか?
Henrique 14年

@Varundroidああ、それは2.2に依存していますか?私は2.1を持っています
shaktiman_droid 2014年

6
minifyEnabled(ではないminifyEnable)である必要があります
JRomero 2014年

112

アプリの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'
    }
}

あなたが提案したことを行っても、同じエラーが発生する。
Karan Khurana

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 2015

25

以下のようGradleの0.14.4、これらのエラーはコンパイル時にエラーとして報告されています。

だからあなたは交換する必要があります runProguard false/trueminifyEnabled false/true

変更点はAndroid Developers Blogに掲載されています。


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から他のすべてはどこにありますか?これがどのファイルで見つかるかについて言及することは無視されます。ルートグラドル構成ファイルに表示されません。
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.