いくつかの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
モードでビルドされたすべてのモジュールが本当に必要です。
この問題を解決する方法はありますか?
@laaltoが回答したように、minifyEnabled
のデフォルト値は、すべてのビルドタイプでfalse
です。
ただし、現在(2015年4月24日現在)、一部のモジュール(アプリを含む)が含まれるmulti-moduleプロジェクトには当てはまりません。 他のモジュールに依存。これは バグ#52962 が原因でビルドタイプがされないライブラリに伝播されます-これらは常にRELEASEとしてビルドされます。
このバグを回避するための提案またはその修正の通知は大歓迎です。
デバッグビルドのminifyEnabledのデフォルトは何ですか?
minifyEnabled
のデフォルト値は、すべてのビルドタイプでfalse
です。 参考 。
ただし、問題は、非リリースビルド(デバッグなど)でもminifyが発生しているように見えることです。
これはどのようにして可能ですか?
デバッグビルドは、おそらくどこか他の定義、または使用している外部ビルドスクリプトによってプロガード処理を取得します。
更新された質問では、ライブラリプロジェクトと、デバッグビルドのためにも縮小されたライブラリを使用するアプリプロジェクトがあります。それが「特徴」です。解決策として、 issue report にも記載されている以下を検討してください。
build.gradle
に以下を追加して、ライブラリプロジェクトのすべてのバリアントをビルドします。
Android {
publishNonDefault true
}
アプリプロジェクトで、ビルドタイプ固有の依存関係を選択します
dependencies {
releaseCompile project(path: ':theotherproject', configuration: 'release')
debugCompile project(path: ':theotherproject', configuration: 'debug')
}