Android Studio Gradleのビルドに時間がかかりすぎる


225

私のAndroid Studioプロジェクトは以前より速くビルドできましたが、今ではビルドに長い時間がかかります。遅延を引き起こしている可能性のあるアイデアはありますか?https://stackoverflow.com/a/27171878/391401を試しましたが、効果はありません。ビルドを中断する可能性のあるアンチウイルスを実行していません。私のアプリもそれほど大きなサイズではなく(約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  

1
あなたのアプリケーションを実行するために、あなたは何を使っていますか、あなたのアンドロイド電話またはエミュレーター?
Ram Mansawala、2015

デバイスでの実行
Harish

3
GoogleがAndroidのスタジオに日食から切り替えなぜAndroidのスタジオが吸う....ない
カピル

38
Android Studioが新しくなったとき、StackOverflowの多くは「ベータ版のみ」だったので、これに関する苦情を却下しました。ただし、「ベータ版」になってから数年が経過し、8コア、16 GBのRAM、およびSSDディスクで動作が遅くなっています。このマシンにセットアップされた古いEclipseは、瞬きと同じくらい高速です。
Andrew S

回答:


453

Android Studioで、[ファイル]-> [設定]-> [ビルド、実行、デプロイメント]-> [ビルドツール]-> [Gradle]に移動します。

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

「グローバルGradle設定」の下の「オフライン作業」を確認してください

Gradleのビルド時間を90%短縮します。

ビルド時間を短縮するためにこれをチェックしてください

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


11
よく働きました。12
Ramesh

18
build.gradleに追加すると、この構成で新しいライブラリのフェッチが停止しませんか?
Dany Y

48
新しいライブラリを追加する場合は、一度ライブラリをオンラインにする必要があります。これは、gradleビルドによって通知され、プロジェクトを実行可能にします@DanyY
Biswajit Karmakar

15
それは常に問題がプロセッサ速度ではなくインターネット速度だったことを意味しますか?

1
わあ!15分以上から1分に行った:O
枢機卿-モニカを復活させる'16年

150

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

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

アプリが実際に使用しているGoogle APIのみを使用してください。使用しているのがGoogleマップだけの場合は、次のようにします。

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

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

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


12
あなたは100以上の賛成票に値します。他のすべてのソースは、追加org.gradle.parallel=trueとコマンドライン関連を提案しています...しかし、何が実際に起こっているのかについての単純で直接的な理解を提供するものはありません。あなたのアドバイスを使用して、私のビルド時間は1分5秒から3.427秒になりました。驚くばかり!!
サウロン

どうもありがとう、これも私の主な問題でした。これですべてがうまくいきました。
alnaji

1
よく働く。:あなたのプレイサービスライブラリ名を見つけるには、このリンクを使用しdevelopers.google.com/android/guides/...
PCを。

あなたはダニに値する...あなたは私の問題を解決しました。問題はグーグルプレイサービスにあります...ありがとう:)
Karue Benson Karue

これは、長いビルドの問題を解決するだけでなく、デバッグ時にProguardを使用せずにAndroidデバイスに直接デプロイすることもできます(以前は65Kメソッドの制限に関するエラーが発生していました)。ありがとう!
magritte

52

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

アプリに移動>> gradle.propertiesを開き、数行を変更します[削除 ]

それ以外の場合は、以下のスニペットもコピーして貼り付けることができます

    # 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を割り当てました


これにより、ビルド時間が30分以上から24分に短縮されました...さらに削減する方法はありますか?
プログラミング海賊

34

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

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


3
プロキシサーバーを削除する方法
Joolah、2015

2
Windowsファイルの場合>設定>外観と動作>システム設定> HTTPプロキシ
Harish

2
私の問題はプロキシにもありましたが、その中で、gradleプロパティにHTTPSプロキシも追加する必要がありました。HTTPプロキシが不十分でした:systemProp.http.proxyHost = xxx.xxx.xxx.xxx systemProp.http.proxyPort = 8080 systemProp.https.proxyHost = xxx.xxx.xxx.xxx systemProp.https.proxyPort = 8080
user3098756

26
ASは完全なジョークとbsです。私はこのナンセンスにうんざりしています。
The_Martian 2016

9
同意する!!!大規模なプロジェクトをEclipseから移行するのは非常に苦痛ですが、今ではエラーがクリアされ、ASでのビルドが終了しません!!! 私はAS @The_Martianが嫌いです
Josh

20

手順に従うと、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

4
スタジオプロジェクトの下にあるgradle.propertiesから直接設定できます。
Biswajit Karmakar

3
はい、このオプションも有効にしますorg.gradle.jvmargs = -Xmx2048m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370

2
MaxPermSize = 1024mを設定
Biswajit Karmakar

これらのプロパティが事前定義されていないのはなぜですか?欠点はありますか?
OLI

このオプションは、分離プロジェクトでのみ使用してください。詳細については、gradle.org
docs

17

Java 8機能を有効にすると、ビルドが非常に遅くなります

グラドル

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

上記の行を削除した後、数秒でビルドされます。

ジャックでのコンパイルに非常に長い時間がかかる問題があります

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

現在、ビルド時間はジャックの問題であることを認識しています。2.4 Gradleプラグインに改善があり、インクリメンタルビルドの大幅な改善になるはずです。

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


4
はい私は同意する。Android StudioでJava 8を有効にするには、ジャックを使用する必要があります。これにより、ビルド時間は1〜2分のビルドから16分の月まで月に飛ぶようになります。これは現在使用できません。いつものように素晴らしい仕事Google
KarolŻygłowicz17年


7

@AndroidDevソリューションでうまくいきました。lib全体を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


4

インターネット接続を確認してください。インターネット速度が非常に遅い場合、gradleビルドもビルドに長い時間がかかります。私は私のwifiインターネット接続を別の1つの高速接続に変更して確認します。現在、ビルド時間は正常です。他のソリューションに進む前にこれを試してください。誰かが間違った決定をして再インストールまたは設定の変更をするでしょう。お役に立てば幸いです。よろしくお願いいたします。


ファイアウォールでAndroid Studioを必ず許可してください。突然ファイアウォールウィンドウのポップアップで許可するように求められたとき、フレッシュインストールでGradleをほぼ15分間待っていました。しかしもっと
早かったかもしれ

2

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

2)また、ここで提案されているように、Android Studioで「オフライン作業」を有効にすることもできます。これは、ビルドを行うたびにライブラリを再フェッチするわけではありません。おそらく、接続が遅いか、「オフライン作業」を無効にしてプロキシ/ vpnを使用すると、ビルド時間が遅くなる可能性があります。

3)google services-ここで述べたように、バンドル全体を使用せず、バンドルの必要な部分のみを使用してください。


1

Android Studio 2.0のベータ版では、Instant Runと呼ばれる機能を公開しています。ビルド時間を大幅に短縮します。中心的な概念は、Android Studioは、既に実行中のアプリに加えられた小さな変更のみをプッシュすることです。

これは、コードで行った変更を、ホットスワップ、ウォームスワップ、およびコールドスワップの3つの部分に分類します。その後、すでに実行中のアプリのコードを交換するだけで、数秒実行されている変更を確認できます。詳細については、ドキュメントを参照してください。

ここでは、Android Studio 2.0プレビューをダウンロードできます。

PS:この機能にはいくつかの問題があります。彼らはそれをドキュメントでリストアップしました。インストール前に確認してください。


1
  1. [ファイル]-> [設定]-> [グラドル]-> [オフラインモードに設定]に移動して確認します。

1

長い間同じ問題に直面していましたが、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

    }
}

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


0

Windows 8を使用している場合...

DroidArcとAndroidDevのソリューションは有用ですが、完全ではありません。私の問題は、Windows 8 OSと100%のディスク使用率に関連していました。

特にWindows Searchサービスが最も消費されていました。cmd(Admin)> net.exe stop "Windows search"で無効にします。

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

お役に立てれば。



0

特に私の電話を通して積極的にデバッグするとき、私はこのような問題を抱えていました。時々それは27分かかりました。私は次のことを行い、それぞれの下の説明に注意してください-あなたのために働くかもしれません:

  1. gradle.propertiesファイルを変更しました(Androidオプションまたはプロジェクトフォルダー内にプロジェクトファイルビューがある場合は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

グローバルGradle設定(下部)

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

  1. これにより時間は大幅に短縮されましたが、不安定でした。時々時間がかかりました。したがって、インスタントランにいくつかの変更を加えました。

ファイル->設定/設定->ビルド、実行、配置->インスタント実行

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

チェック済み:コード変更時にアクティビティを再起動します...

  1. 上記の動きも不規則だったので、問題が私の電話とコンピューターのどちらかで直接実行されているプロセス/メモリにあるのかどうかを調べようとしました。ここでは、携帯電話とストレージのメモリ領域を少し解放し(使用率98%-70%まで)、タスクマネージャー(Windows)でも、Android StudioとJava.exeの両方の優先度を「高」に上げました。このステップは慎重に行ってください。コンピュータのメモリに依存します。

  2. 結局のところ、私の電話でアクティブにデバッグしている間のビルド時間は、時々1〜2分に短縮されましたが、時々急上昇しました。私はハックをすることに決めました、それを数秒に減らすことで私驚かせましたが、22-27 分を与えた同じプロジェクトで12秒でした!:

デバッグのために電話を接続し、[実行]をクリックします

起動後、電話を外します-ビルドはより速く続行され、これを示すエラーが最後に発生します:セッション 'app':エラーAPKのインストール

電話を再接続し、再度実行をクリックしてください...

代わりに

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

編集

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


0

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

同じ問題があり、gradleビルドも8時間実行され、心配されました。しかし、後でbuild.gradleファイルのコンパイルsdkバージョンと最小sdkバージョンを次のように変更しました。

古い:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 9
    targetSdkVersion 25
}

新規(更新):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }

-2

私のコンピューターにも同様の問題がありました。Windows DefenderがGradle Buildingの一部をブロックしていました。私はそれを無効にしましたが、その後はうまくいきました。


-43

パソコンを再起動して、Android Studioをもう一度実行してみてください。AndroidターゲットコードベースでCordova / Phonegapプロジェクトをビルドしようとしたときに私のために働きました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.