Android Studio gradle membutuhkan waktu terlalu lama untuk dibangun

225

Proyek Android Studio saya digunakan untuk membangun lebih cepat tetapi sekarang membutuhkan waktu lama untuk membangun. Ada ide apa yang bisa menyebabkan penundaan? Saya telah mencoba https://stackoverflow.com/a/27171878/391401 tetapi tidak ada efek. Saya tidak punya Anti virus yang berjalan yang dapat mengganggu build. Aplikasi saya juga tidak sebesar itu (sekitar 5MB ) dan digunakan untuk membangun dalam beberapa detik tetapi tidak yakin apa yang telah berubah.

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  
Harish
sumber
1
Apa yang Anda gunakan, ponsel android Anda atau emulator apa saja untuk menjalankan aplikasi Anda?
Ram Mansawala
Berjalan di perangkat
Harish
3
jangan mengapa google beralih dari eclipse ke android studio .... Android studio sucks
kapil
38
Ketika Android studio masih baru, banyak orang di StackOverflow menolak keluhan tentang ini karena itu 'hanya versi beta'. Namun, sekarang sudah beberapa tahun sejak itu 'hanya beta' dan masih lamban dan itu pada 8 core, 16GB ram dan disk SSD. Eclipse lama yang dipasang pada mesin ini secepat kilat.
Andrew S

Jawaban:

453

Di Android Studio, buka File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle

(jika ada mac) Android Studio -> preferensi ... -> Build, Eksekusi, Deployment -> Build Tools -> Gradle

Periksa 'Pekerjaan offline' di bawah 'Pengaturan Global Gradle'

Ini akan mengurangi waktu pembuatan 90% gradle.

periksa ini untuk mengurangi waktu pembuatan

jika Anda baru saja menambahkan dependensi baru di gradle Anda, Anda harus menghapus centang pada pekerjaan offline atau gradle tidak akan dapat menyelesaikan dependensi. Setelah penyelesaian penuh maka Anda dapat memeriksa pekerjaan offline untuk membangun lebih cepat

Biswajit Karmakar
sumber
11
Bekerja dengan baik. Dari 12 menit hingga 5 detik
Ramesh
18
tidakkah konfigurasi ini berhenti mengambil pustaka baru ketika kami menambahkannya ke build.gradle?
Dany Y
48
ketika Anda menambahkan perpustakaan baru maka Anda harus membuatnya online hanya untuk satu kali yang akan diberitahukan oleh gradle build untuk membuat proyek runnable @DanyY
Biswajit Karmakar
15
Apakah ini berarti bahwa setiap saat masalahnya adalah kecepatan internet, bukan kecepatan prosesor?
1
Wow! Pergi dari lebih dari 15 menit menjadi 1 menit: O
Cardinal - Reinstate Monica
150

Jika Anda menggunakan layanan Google Play, pastikan Anda tidak menggunakan ini dalam skrip Gradle build Anda:

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

Hanya gunakan API Google yang benar-benar digunakan aplikasi Anda. Jika semua yang Anda gunakan adalah Google Maps, Anda akan menggunakan ini:

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

Ketika saya melakukan ini, waktu kompilasi saya beralih dari lebih dari 2 menit menjadi sekitar 25 detik. Untuk daftar apis Google yang dapat Anda kompilasi secara selektif, lihat:

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

AndroidDev
sumber
12
Anda berhak mendapatkan 100+ upvotes. Setiap sumber lain menyarankan penambahan org.gradle.parallel=truedan baris perintah yang terkait ... tetapi tidak ada yang memberikan pemahaman yang sederhana dan langsung tentang apa yang sebenarnya terjadi. Menggunakan saran Anda, waktu build saya berubah dari 1 menit 5 detik, menjadi 3,427 detik. Hebat !!
Sauron
Terima kasih banyak, ini juga masalah utama saya. Sekarang semuanya bekerja dengan baik.
alnaji
1
Bagus sekali. Gunakan tautan ini untuk menemukan nama perpustakaan layanan bermain Anda: developers.google.com/android/guides/…
PC.
Anda layak mendapatkan tanda centang ... Anda telah memecahkan masalah saya. Masalahnya ada di layanan google play ... Terima kasih :)
Karue Benson Karue
Tidak hanya ini membantu masalah pembangunan yang lama, tetapi sekarang saya juga dapat menggunakan langsung ke perangkat Android tanpa menggunakan Proguard saat debugging (sebelumnya saya mendapatkan kesalahan tentang batas metode 65K). Terima kasih!
magritte
52

Menemukan cara yang mudah dan terbaik untuk membangun gradle

buka aplikasi Anda >> buka gradle.properties Anda dan ubah beberapa baris darinya [hapus # ]

selain itu Anda dapat menyalin tempelkan cuplikan di bawah saya juga

    # 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

itu bekerja untuk saya sebelumnya butuh hampir 2-3 menit sekarang hanya butuh 5-6 detik

dalam skenario di atas mesin mac saya memiliki ram 8GB jadi saya ditugaskan 4gb untuk gradle

Android adalah segalanya bagi saya
sumber
Ini mengurangi waktu pembuatan saya dari 30+ menit menjadi 24 menit ... Apakah ada cara untuk mengurangi lebih lanjut ...?
Memprogram Bajak Laut
34

Menemukan alasannya !! Jika Android Studio memiliki pengaturan server proxy dan tidak dapat mencapai server maka perlu waktu lama untuk membangun, mungkin mencoba mencapai server proxy dan menunggu batas waktu. Ketika saya menghapus pengaturan server proxy itu berfungsi dengan baik.

Menghapus proksi: File > Settings > Appearance & Behavior > System settings > HTTP Proxy

Harish
sumber
3
Bagaimana cara menghapus server proxy?
Joolah
2
Pada File Windows> Pengaturan> Tampilan & Perilaku> Pengaturan sistem> HTTP Proxy
Harish
2
Masalah saya juga dalam proxy, tetapi dalam hal itu, saya harus menambahkan juga HTTPS proxy di properti gradle. Proxy HTTP tidak cukup: 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 adalah lelucon lengkap dan bs. Saya hanya bosan dengan omong kosong ini.
The_Martian
9
Saya setuju!!! Saya menderita rasa sakit yang tidak suci untuk bermigrasi proyek besar dari Eclipse, dan sekarang kesalahan telah diselesaikan, membangun dengan AS tidak pernah selesai !!! Aku benci AS @The_Martian
Josh
20

Mengikuti langkah-langkah akan membuatnya 10 kali lebih cepat dan mengurangi waktu pembangunan 90%

Pertama buat file bernama gradle.properties di direktori berikut:

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

Tambahkan baris ini ke file:

org.gradle.daemon=true

org.gradle.parallel=true
pengguna779370
sumber
4
Anda dapat mengaturnya langsung dari gradle.properties yang terletak di bawah proyek studio.
Biswajit Karmakar
3
Ya juga aktifkan opsi ini org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370
2
Setel MaxPermSize = 1024m
Biswajit Karmakar
Mengapa properti itu tidak ditentukan sebelumnya ?? Apakah ada kerugian?
oli
Opsi ini hanya boleh digunakan dengan proyek yang dipisahkan. Lebih detail, kunjungi gradle.org/docs/current/userguide/…
javad
17

Mengaktifkan fitur Java 8 menyebabkan pembangunan sangat lambat

gradle

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Setelah menghapus garis di atas, itu dibangun dalam hitungan detik.

Ada masalah Mengkompilasi dengan Jack membutuhkan waktu yang sangat lama

Jawaban Manajer Proyek

Kami sadar bahwa waktu pembangunan adalah masalah dengan Jack saat ini. Kami memiliki peningkatan pada plugin 2.4 Gradle yang seharusnya menjadi peningkatan yang signifikan untuk build tambahan.

Sampai sekarang, versi Gradle terbaru yang dapat saya temukan adalah 2.3.0-beta4

tchelidze
sumber
4
Ya saya setuju. Untuk mengaktifkan java 8 di studio android, Anda perlu menggunakan Jack dan dengan melakukan ini waktu build saya terbang ke bulan dari 1-2 menit hingga 16 menit ... apa .... itu tidak dapat digunakan sekarang. Seperti biasa, Google
Karol Żygłowicz
7

Solusi @AndroidDev bekerja untuk saya. Saya telah memasukkan seluruh lib dalam gradle.

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

Mengubah untuk memecahkan masalah. Dari 4 menit hingga 1 menit.

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

Thnx

Klarifikasi
sumber
4

Periksa koneksi internet Anda . Jika kecepatan internet sangat lambat membangun gradle juga akan memakan waktu lama untuk membangun. Saya memeriksa dengan mengubah koneksi internet wifi saya dengan koneksi cepat yang bagus. Sekarang waktu membangun adalah normal. Silakan coba ini sebelum Anda pergi ke solusi lain. seseorang akan mengambil keputusan yang salah untuk menginstal ulang atau mengubah pengaturan. Saya harap ini akan membantu. Terima kasih dan salam.

Karthikeyan Dheshnamoorthy
sumber
Pastikan untuk mengizinkan Android Studio di Firewall. Menunggu hampir 15 menit untuk gradle pada instalasi baru ketika tiba-tiba jendela Firewall muncul meminta saya untuk mengizinkannya. Bisa saja lebih cepat
Mohd.Zafranudin
2

1) Waktu membangun saya sangat meningkat setelah saya menambahkan beberapa dependensi perpustakaan baru ke file gradle saya, apa yang ternyata saya perlu menggunakan multidex setelah itu. Dan ketika saya mengatur multidex dengan benar maka waktu build saya naik menjadi 2-3 menit. Jadi, jika Anda ingin waktu pembuatan yang lebih cepat, hindari menggunakan multidex, dan sejauh mungkin, kurangi jumlah dependensi perpustakaan.

2) Anda juga dapat mencoba mengaktifkan "pekerjaan offline" di studio android, seperti yang disarankan di sini, itu masuk akal. Ini tidak akan membuat ulang perpustakaan setiap kali Anda membuat build. Mungkin koneksi yang lambat atau penggunaan proxy / vpn dengan "pekerjaan offline" dinonaktifkan dapat menyebabkan waktu pengembangan menjadi lambat.

3) layanan google - seperti yang disebutkan di sini, jangan gunakan seluruh bundel, gunakan hanya bagian yang diperlukan saja.

lxknvlk
sumber
1

Dalam versi beta dari Android studio 2.0, mereka telah meluncurkan fitur yang disebut Instant Run . Ini mengurangi waktu pembangunan dengan faktor besar. Konsep intinya adalah, Android Studio hanya mendorong perubahan kecil yang dibuat menjadi aplikasi yang sudah berjalan.

Ini mengklasifikasikan perubahan yang kami buat dalam kode kami menjadi tiga bagian: hot swap, warm swap, dan cold swap, berdasarkan berapa banyak beban yang akan dimasukkan oleh perubahan pada build. Setelah itu, ia hanya menukar kode di aplikasi yang sudah berjalan dan kita bisa melihat perubahan berjalan beberapa detik. Lihat dokumen mereka untuk informasi lebih lanjut.

Di sini Anda dapat mengunduh pratinjau Android Studio 2.0.

PS: Ada beberapa masalah dengan fitur ini. Mereka telah mendaftarkannya di dokumen. Periksa sebelum instalasi.

Akeshwar Jha
sumber
1
  1. Pergi ke File-> Pengaturan -> Gradle -> Atur ke mode offline dan periksa
vikas khot
sumber
1

Saya menghadapi masalah yang sama untuk waktu yang lama tetapi saya menyelesaikannya dengan menyesuaikan pengaturan secara bertahap.

Langkah 1: Di aplikasi Modul, tambahkan ketergantungan di BuildScript

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

Langkah 2: Tambahkan dexOption dan berikan heapSize berikut

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

Langkah 3: Tambahkan 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

    }
}

Ini akan mengurangi waktu pembuatan Anda.

Binesh Kumar
sumber
0

Jika Anda menggunakan Windows 8 ...

DroidArc dan AndroidDev solusi mana yang bermanfaat, tetapi tidak enougth. Masalah saya terkait dengan OS Windows 8 dan penggunaan disk 100%.

Terutama layanan Pencarian Windows, adalah yang paling memakan. Nonaktifkan dengan: cmd (Admin)> net.exe stop "Pencarian Windows"

Saya mengikuti petunjuk di tautan ini dan itu memecahkan masalah nyata 4 Tips untuk Memperbaiki Penggunaan Disk 100% & Meningkatkan Kinerja Windows

Semoga ini membantu.

dianakarenms
sumber
0

Saya memiliki masalah yang sama di kotlin. Memperbarui runtime kotlin yang sudah usang memecahkannya untuk saya

Rami Amro Ahmed
sumber
0

Saya memiliki masalah seperti ini terutama ketika debugging aktif melalui telepon saya; kadang-kadang butuh 27 menit. Saya melakukan hal-hal berikut dan perhatikan penjelasan di bawah masing-masing - satu dapat bekerja untuk Anda:

  1. Mengubah file gradle.properties saya (di bawah skrip Gradle jika Anda memiliki tampilan file proyek di bawah opsi Android ATAU di dalam folder proyek Anda). Saya menambahkan ini karena komputer saya memiliki beberapa memori untuk cadangan - Anda dapat menetapkan nilai yang berbeda pada akhirnya tergantung pada spesifikasi komputer Anda dan persyaratan minimum 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. Ini tidak sepenuhnya menyelesaikan masalah saya dalam kasus saya. Karena itu saya juga melakukan seperti yang orang lain sarankan sebelumnya - untuk membuat proses build saya offline:

File -> Pengaturan / Preferensi -> Bangun, Eksekusi, Penempatan -> Gradle

Pengaturan Global Gradle (di bagian bawah)

Tandai kotak centang bernama: Pekerjaan Offline.

  1. Ini mengurangi waktu secara substansial tetapi tidak menentu; terkadang butuh waktu lebih lama. Karenanya saya membuat beberapa perubahan pada Instant Run:

File -> Pengaturan / Preferensi -> Build, Eksekusi, Deployment -> Run Instan

Dicentang: Aktifkan Instant Run ke hot swap code ...

Diperiksa: mulai ulang aktivitas dengan perubahan kode ...

  1. Langkah di atas juga tidak menentu dan karena itu saya mencari tahu apakah masalahnya adalah proses / memori yang berjalan langsung di ponsel dan komputer saya. Di sini saya membebaskan sedikit ruang memori di ponsel dan penyimpanan saya (yang pada 98% digunakan - hingga 70%) dan juga pada task manager (Windows), meningkatkan prioritas Android Studio dan Java.exe ke Tinggi. Ambil langkah ini dengan hati-hati; tergantung pada memori komputer Anda.

  2. Setelah semua ini waktu build saya ketika debugging aktif di ponsel saya kadang-kadang turun menjadi 1 ~ 2 menit tetapi kadang-kadang berduri. Saya memutuskan untuk melakukan peretasan yang mengejutkan saya dengan mencatatnya menjadi detik terbaik pada proyek yang sama yang memberi saya 22 - 27 menit adalah 12 detik !:

Hubungkan telepon untuk debugging lalu klik RUN

Setelah dimulai, cabut kabel telepon - build seharusnya berlanjut lebih cepat dan menimbulkan kesalahan di bagian akhir yang menunjukkan ini: Session 'app': Error Menginstal APK

Sambungkan kembali telepon dan klik RUN lagi ...

KALAU TIDAK

Jika skrip / fungsi / metode yang saya debug sepenuhnya adalah JAVA, bukan JAVA-android misalnya menguji API dengan JSONArrays / JSONObjects, saya menguji fungsi / metode java saya di Netbeans yang dapat mengkompilasi satu file dan menampilkan output lebih cepat kemudian membuat perubahan yang diperlukan pada file Android Studio saya. Ini juga menghemat banyak waktu.

EDIT

Saya mencoba membuat proyek android baru di penyimpanan lokal dan menyalin semua file saya dari proyek sebelumnya ke yang baru - java, res, manifes, aplikasi gradle dan proyek gradle (dengan ketergantungan classpath classle terbaru). Dan sekarang saya dapat membangun ponsel saya dalam waktu kurang dari 15 detik.

Firsake
sumber
0

Di build.gradle Anda, jika Anda telah minifyEnabled untuk debug, hapus itu. Saya memilikinya di proyek saya dan butuh ~ 2-3 menit untuk membangun. Setelah melihat perkembangan build, saya menemukan ini sebagai pelakunya, jadi menghapus baris komentar di bawah ini, masalah saya telah diperbaiki.

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

Saya memiliki masalah yang sama, bahkan bangunan gradle berjalan selama 8 jam dan saya khawatir. Tetapi kemudian saya mengubah versi kompilasi SDK dan versi SDK minimum di file build.gradle seperti ini.

Lebih tua:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

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

Baru (Diperbarui):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }
Pir Fahim Shah
sumber
-2

Saya memiliki masalah serupa di komputer saya. Windows Defender memblokir beberapa bagian dari Gradle Building. Saya sudah menonaktifkannya, bekerja dengan baik setelah itu.

rickdroio
sumber
-43

Coba mulai ulang komputer Anda dan jalankan Android Studio lagi. Bekerja untuk saya ketika mencoba membangun proyek Cordova / Phonegap dengan basis kode target Android.

racl101
sumber