web-dev-qa-db-ja.com

Android Studio gradleの構築に時間がかりすぎる

My Android Studio プロジェクトは以前より速くビルドされていましたが、今ではビルドに時間がかかります。遅延の原因となる可能性のあるアイデアはありますか? https://stackoverflow.com/a/27171878/391401 を試してみました - /しかし効果はありません。ビルドを中断する可能性のあるAntiウイルスを実行していません。私のアプリのサイズもそれほど大きくはなく(約 5MB )、数秒以内にビルドされていましたが、何が変わったのかはわかりません。

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running  
200
Harish

理由を見つけました! Android Studioにプロキシサーバーの設定があり、サーバーにアクセスできない場合は、ビルドに時間がかかります。おそらくプロキシサーバーにアクセスしようとしてタイムアウトを待っています。プロキシサーバーの設定を削除したとき、正常に動作しています。

プロキシを削除しています:File > Settings > Appearance & Behavior > System settings > HTTP Proxy

33
Harish

Android Studioで、[ファイル] - > [設定] - > [ビルド、実行、デプロイ] - > [ビルドツール] - > [Gradle]の順に選択します。

(Macの場合) Android Studio - >設定... - >ビルド、実行、デプロイ - >ビルドツール - > Gradle

[Global Gradle settings]の下の[Offline work]を確認します。

それは90%のgradle構築時間を短縮するでしょう。

check this to reduce build time

gradleに新しい依存関係を追加したばかりの場合は、 offline work をオフにする必要があります。そうしないと、gradleで依存関係を解決できません。完全に解決したら、 オフライン作業 をチェックしてより速いビルドを確認できます。

411

Google Playサービスを使用している場合は、Gradleビルドスクリプトでこれを使用していないことを確認してください。

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

アプリが実際に使用しているGoogle APIのみを使用してください。あなたが使っているのがグーグルマップだけであるならば、あなたはこれを使うでしょう:

com.google.Android.gms:play-services-maps:8.3.0

私がこれをしたとき、私のコンパイル時間は2分以上から約25秒になりました。選択的にコンパイルできるGoogle APIのリストについては、以下を参照してください。

https://developers.google.com/Android/guides/setup

144
AndroidDev

Gradleを構築するための簡単で最良の方法を見つけました

あなたのアプリに行く>>あなたのgradle.propertiesを開いて、そこから数行を変更する[remove]

それ以外の場合は、コピーして私の下のスニペットに貼り付けてください。

    # Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx2048m -XX:MaxPermSize=512m
 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 org.gradle.parallel=true

それは私のために早く働きましたそれは今およそ2-3分かかりますそれはたったの5-6秒かかります

上記のシナリオでは、私のMacマシンは8GBのRAMを持っているので、私はgradleに4GBを割り当てました。

Java 8機能を有効にすると致命的に遅いビルドが発生する

gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

上記の行を削除した後、それは数秒で構築されます。

問題がある Jackでコンパイルするのはとても時間がかかる

プロジェクトマネージャの回答

私たちは、ビルド時間がJackの現在の問題であることを認識しています。 2.4 Gradleプラグインが改良されました。これは、インクリメンタルビルドでは大幅に改善されるはずです。

今のところ、私が見つけることができる最新のGradleバージョンは 2.3.0-beta4 です。

17
tchelidze

手順に従うと、10倍速くなり、ビルド時間を90%短縮できます。

まず、次のディレクトリにgradle.propertiesという名前のファイルを作成します。

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

この行をファイルに追加します。

org.gradle.daemon=true

org.gradle.parallel=true
16
user779370

推奨読書: Gradleビルドで週5時間節約する方法

この素晴らしい投稿によると、あなたは以下を最適化しようとするべきです:

  • Gradle Daemon
  • 並列プロジェクト実行
  • オンデマンドでプロジェクトを構成する
  • モジュールは高価です...
15
Oded Regev

@AndroidDevソリューションは私のために働いた。ライブラリ全体をgradleに含めました。

compile 'com.google.Android.gms:play-services:8.4.0'

問題を解決するために変更します。 4分から1分まで.

compile 'com.google.Android.gms:play-services-ads:8.4.0'
compile 'com.google.Android.gms:play-services-analytics:8.4.0'

Thnx

7
KlevisGjN

インターネット接続を確認してください 。インターネットの速度が非常に遅い場合は、グラドルビルドもビルドに時間がかかります。私は別の1つの良いスピード接続で私のwifiインターネット接続を変更することによってチェックします。今ではビルド時間は普通です。他の解決策に進む前にこれを試してください。誰かが間違った決定をして再インストールや設定の変更をするでしょう。助けになれば幸いです。ありがとうございます。

1)gradleファイルに新しいライブラリの依存関係を追加した後、ビルド時間が大幅に増加しました。その後、multidexを使用する必要があることがわかりました。マルチインデックスを正しく設定すると、ビルド時間は2〜3分になりました。したがって、もっと速いビルド時間が必要な場合は、マルチインデックスの使用を避け、可能な限りライブラリの依存関係の数を減らします。

2)また、ここで提案されているように、Androidスタジオで「オフライン作業」を有効にしてみることもできます。これはビルドをする度にライブラリを再構築することはありません。 「オフライン作業」を無効にした状態での接続やプロキシ/ VPNの使用が遅いと、ビルド時間が遅くなる可能性があります。

3)グーグルサービス - ここで述べたように、バンドル全体を使わず、必要な部分だけを使ってください。

2
lxknvlk

私は長い間同じ問題に直面していましたが、私はgradleで設定を調整することによってそれを解決しました。

ステップ1:モジュールアプリでBuildScriptに依存関係を追加する

buildscript {
 dependencies {
         classpath 'com.Android.tools.build:gradle:2.0.0-alpha9'
}
}

ステップ2:dexOptionを追加して次のheapSizeを指定してください

  dexOptions {
    incremental = true;
    preDexLibraries = false
    javaMaxHeapSize "4g"
}

ステップ3:productFlavorsを追加する

    productFlavors {
    dev {
        minSdkVersion 23
        applicationId = "com.Reading.home"
    }
    prod {
        minSdkVersion 15
        applicationId = "com.Reading.home" // you don't need it, but can be useful

    }
}

これによりビルド時間が短縮されます。

1
Binesh Kumar
  1. 「ファイル」 - >「設定」 - >「Gradle」 - >「オフラインモード」に設定して確認します。
1
vikas khot

Android Studio 2.0のベータ版では、彼らは Instant Run という機能を公開しました。これにより、ビルド時間が大幅に短縮されます。基本的な考え方は、Android Studioは既に実行中のアプリに加えられた小さな変更のみをプッシュすることです。

コードに加えた変更をホットスワップ、ウォームスワップ、およびコールドスワップの3つの部分に分類します。変更がビルドに与える負荷に基づいています。その後、すでに実行中のアプリのコードを単純に交換するだけで、数秒で変更が実行されることがわかります。詳しくは doc を参照してください。

ここ あなたはAndroid Studio 2.0のプレビューをダウンロードすることができます。

シモンズ:この機能にはいくつかの問題があります。彼らはそれをドキュメントにリストしました。インストールする前にチェックしてください。

1
Akeshwar Jha

あなたのbuild.gradleで、もしあなたがデバッグのためにminifyEnabledを持っていたら、それを削除してください。私は自分のプロジェクトにそれを持っていました、そしてそれは構築するために〜2-3分かかりました。ビルドの進行状況を確認したところ、これが原因となっていたため、以下のコメント行を削除して、問題を解決しました。

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }//debug{
         //   minifyEnabled true
         //   proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'}
0
Mukesh

私の携帯電話から積極的にデバッグする場合は特に、このような問題がありました。時にはそれは27分かかりました。私は以下のことをし、それぞれの下の説明に注目します - あなたのために働くかもしれません:

  1. 私のgradle.propertiesファイルを変更しました(プロジェクトフォルダ内にAndroidオプションORの下のプロジェクトファイルビューがある場合はGradleスクリプトの下)。私のコンピュータは予備のメモリを持っているのでこれを追加しました - あなたはあなたのコンピュータの仕様とAndroid Studioの最小要件(Xmx8000m -XX:MaxPermSize = 5000m)に応じて最後に異なる値を割り当てることができます

org.gradle.daemon = true

org.gradle.configureondemand = true

org.gradle.parallel = true

Android.enableBuildCache = true

org.gradle.caching = true

org.gradle.jvmargs = -Xmx8000m -XX:MaxPermSize = 5000m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

  1. これは私の場合私の問題を完全に解決しなかった。したがって、私は他の人が以前に示唆したように、私のビルドプロセスをオフラインにするためにも行いました。

「ファイル」 - >「設定/設定」 - >「ビルド」、「実行」、「デプロイメント」 - >「Gradle」

Global Gradle Settings(下部)

オフライン作業というチェックボックスをマークします。

  1. これにより時間は大幅に短縮されましたが、不規則でした。時には時間がかかりました。そのため、Instant Runにいくつかの変更を加えました。

「ファイル」 - >「設定/設定」 - >「ビルド」、「実行」、「デプロイメント」 - >「インスタントラン」

チェックあり:ホットスワップコードへのインスタントランを有効にする...

チェックあり:コードの変更時にアクティビティを再開しています...

  1. 上記の動きはまた不規則でもあった、そしてそれ故に問題が私の電話とコンピュータのどちらかで直接走ったプロセス/メモリであるかもしれないかどうか調べようとした。ここで私は自分の携帯電話とストレージ(98%利用されていた - 70%まで)とタスクマネージャ(Windows)の上の少しのメモリスペースを解放して、高へのAndroid StudioとJava.exeの優先順位を上げました。慎重にこの一歩を踏み出してください。コンピュータのメモリに依存します。

  2. 結局のところ私の携帯電話で積極的にデバッグしながら私のビルド時間は1〜2分にダウンしましたが、時にはスパイクしました。私はハックをすることに決めました 私を驚かせました 私に22 - 27分を与えた同じプロジェクトでまだ最高にそれを秒に落とすことによって12秒!:

デバッグのために電話を接続してからRUNをクリック

それが開始した後、電話を抜いてください - ビルドはより速く続行し、これを示す最後にエラーを発生させるべきです:セッション 'アプリ':エラーAPKのインストール

電話を再接続して、もう一度RUNをクリックしてください。

_あるいは_

私がデバッグしているスクリプト/関数/メソッドが純粋にJavaの場合、Java-AndroidではなくJSONArrays/JSONObjectsを使用してAPIをテストするには、1つのファイルをコンパイルして出力をより速く表示してからAndroid Studioファイルに必要な変更を加えることができる、NetbeansでJava関数/メソッドをテストします。これも私に多くの時間を節約します。

_編集_

ローカルストレージに新しいAndroidプロジェクトを作成し、前のプロジェクトから新しいプロジェクトにJava、res、manifest、gradle app、gradleプロジェクトのすべてのファイルをコピーしました(最新のgradleクラスパス依存関係を持つ)。そして今、私は15秒以内に自分の携帯電話上に構築することができます。

0
Firsake

私はコトリンで同じ問題を抱えていました。古くなったkotlinランタイムをアップデートすることでそれが解決しました

0
Rami Amr

あなたはこの記事でヒントを試すことができます なぜあなたのAndroid Studioは永遠に構築するのにかかります - パート2 ヒントの1つはとりわけ "オフラインモードを有効にする"ことをお勧めします。

Windows 8を使っているなら...

DroidArcとAndroidDevのソリューションは便利ですが、それだけではありません。私の問題は私のWindows 8 OSとその100%ディスク使用量に関連していました。

特にWindows Searchサービスが最も消費しました。それを無効にします。cmd(Admin)> net.exe「Windowsの検索」を停止

私はこのリンクの指示に従った、それは実際の問題を解決した 100%ディスク使用量を修正してWindowsパフォーマンスを向上させるための4つのヒント

お役に立てれば。

0
karenms