web-dev-qa-db-ja.com

gradle-Android Studio build too slow multidex application

プロジェクトにmultidex:trueを追加し、MultiDexApplicationから拡張するApplicationクラスを作成すると、プロジェクトのビルド時間が20秒から約90秒になりました。

あなたがすでにVic Vuのソリューションを試したが、multiDexを有効にすることを避けられない場合は、これを試すことができます(Android 5.0以上のデバイスを使用している場合)。

これは、開発ビルドの速度を上げるだけです。本番環境のビルドは依然として遅くなります。

基本的に、dev用とprod用の2つの製品フレーバーを導入する必要があります。

_multiDexEnabled true_を追加

_Android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
          ...
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                                                 'proguard-rules.pro'
        }
        defaultConfig {
            applicationId "com.something.something"
            targetSdkVersion 23
            versionCode 1
            versionName "1.0.0"

            multiDexEnabled true
        }
    }
dependencies {
  compile 'com.Android.support:multidex:1.0.1'
}
_

そして、Applicationを拡張するクラスがあるので、attachBaseContext()をオーバーライドする必要がありました。

_@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}
_

Applicationを拡張しない場合は、単に_AndroidManifest.xml_ MultiDexApplicationタグでapplicationを使用します。

Android Studio _Build Variants_]でdevDebugを指していることを確認してください。

ここで完全な手順をお読みください https://developer.Android.com/studio/build/multidex.html#dev-build

26
Mark Pazon

これは書式設定により適しているため、回答として提供します。

単にあなたの質問に答えるには:いいえ、方法はありません。 Multidexは、65kメソッドの制限の負担を軽減するためのプロセスです。このプロセスは複雑で、単にビルド時間を長くします。

できることは、メソッド数を減らすことです。

あなたのbuild.gradle( ここに提供 )で使用しているもの:

`compile 'com.google.Android.gms:play-services:8.3.0'`

ただし、最新のプレイサービスAPIを見ると、実際に必要なサービスを選択できます。

表1をご覧ください このページ

必要なものだけを使用してください。 Googleプレイサービスは全体で約3万メソッドです。

それが役立つはずです。

25
VicVu

場合によります。

質問では指定していませんが、developmentビルドをスピードアップしたいだけであれば、余分な作業を避けることができます。公式文書には セクション全体 が含まれています。

1
Alex Lipov