web-dev-qa-db-ja.com

明示的にスクリプト化されていないbuildTypeのminifyEnabledのデフォルトは何ですか?

いくつかのEclipseプロジェクトをAndroid Studio(v1.1)にインポートしました。

元のEclipse環境では、リリースモードにProguardを使用しています。

Android Studio環境では、これはbuild.gradleスクリプト(インポートではなく、インポートによる):

buildTypes {
    release {
        minifyEnabled true
        proguardFiles 'proguard.cfg'
    }
}

これは、 "releaseビルドで、proguard.cfgを使用してProguardのミニファイを有効にする"を意味することを理解しています。

ただし、問題は、非リリースビルド(デバッグなど)でもminifyが発生しているように見えることです。

これはどのようにして可能ですか?

デバッグビルドのminifyEnabledのデフォルトは何ですか?


更新1:以下の回答のおかげで、デフォルトがfalseであることがわかりました。これは、デバッグビルドで縮小されたさまざまなモジュールを別の何かがビルドしていることを意味します。

entirebuild.gradleをデバッグビルドで縮小されるモジュールの1つに投稿しています:

apply plugin: 'com.Android.library'

Android {
    compileSdkVersion 8
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 8
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard.cfg'
        }
    }
}

全体 build.gradleプロジェクト自体(つまり、最上位)の場合:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:1.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

ここでは、デバッグビルドでのminifyの強制を説明できるものを見つけることができません。


更新2:アプリのビルド(debug)とそれが依存するモジュール(release? )、左パネルの Build Variant ビューも確認しました。すべてが明確にdebugを示しています。


更新3:Android-Gradleのバグ/制限

アプリがdebugモードでビルドされている場合、debugモードでビルドされたすべてのモジュールが本当に必要です。

この問題を解決する方法はありますか?

12
ususer

@laaltoが回答したように、minifyEnabledのデフォルト値は、すべてのビルドタイプでfalseです。

ただし、現在(2015年4月24日現在)、一部のモジュール(アプリを含む)が含まれるmulti-moduleプロジェクトには当てはまりません。 他のモジュールに依存。これは バグ#52962 が原因でビルドタイプがされないライブラリに伝播されます-これらは常にRELEASEとしてビルドされます。

このバグを回避するための提案またはその修正の通知は大歓迎です。

14
ususer

デバッグビルドのminifyEnabledのデフォルトは何ですか?

minifyEnabledのデフォルト値は、すべてのビルドタイプでfalseです。 参考

ただし、問題は、非リリースビルド(デバッグなど)でもminifyが発生しているように見えることです。

これはどのようにして可能ですか?

デバッグビルドは、おそらくどこか他の定義、または使用している外部ビルドスクリプトによってプロガード処理を取得します。


更新された質問では、ライブラリプロジェクトと、デバッグビルドのためにも縮小されたライブラリを使用するアプリプロジェクトがあります。それが「特徴」です。解決策として、 issue report にも記載されている以下を検討してください。

build.gradleに以下を追加して、ライブラリプロジェクトのすべてのバリアントをビルドします。

Android {
    publishNonDefault true
}

アプリプロジェクトで、ビルドタイプ固有の依存関係を選択します

dependencies {
    releaseCompile project(path: ':theotherproject', configuration: 'release')
    debugCompile project(path: ':theotherproject', configuration: 'debug')
}
12
laalto