Học sinh lớp Android Studio mất quá nhiều thời gian để xây dựng


225

Dự án Android Studio của tôi được sử dụng để xây dựng nhanh hơn nhưng bây giờ phải mất một thời gian dài để xây dựng. Bất kỳ ý tưởng những gì có thể gây ra sự chậm trễ? Tôi đã thử https://stackoverflow.com/a/27171878/391401 nhưng không có hiệu quả. Tôi không có bất kỳ Anti virus nào có thể làm gián đoạn các bản dựng. Ứng dụng của tôi không có kích thước lớn như vậy (khoảng 5 MB ) và nó được sử dụng để xây dựng trong vòng vài giây nhưng không chắc chắn điều gì đã thay đổi.

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
Bạn sử dụng gì, điện thoại Android hoặc bất kỳ trình giả lập nào để chạy ứng dụng của bạn?
Ram Mansawala

Chạy trên thiết bị
Harish

3
đừng tại sao google chuyển từ nhật thực sang studio android .... Studio Android tệ
kapil

38
Khi studio Android còn mới, nhiều người trên StackOverflow đã bác bỏ các khiếu nại về việc này vì đây là 'chỉ là phiên bản beta'. Tuy nhiên, bây giờ đã được vài năm kể từ khi nó 'chỉ là bản beta' và nó vẫn chậm chạp và đó là trên 8 lõi, 16gb ram và đĩa SSD. Eclipse cũ được thiết lập trên máy này nhanh như chớp mắt.
Andrew S

Câu trả lời:


453

Trong Android Studio, đi tới Tệp -> Cài đặt -> Xây dựng, Thi hành, Triển khai -> Công cụ xây dựng -> Lớp

(nếu trên mac) Android Studio -> tùy chọn ... -> Xây dựng, Thực thi, Triển khai -> Công cụ xây dựng -> Gradle

Kiểm tra 'Công việc ngoại tuyến' trong phần 'Cài đặt cấp độ toàn cầu'

Nó sẽ giảm 90% thời gian xây dựng lớp.

kiểm tra điều này để giảm thời gian xây dựng

nếu bạn vừa thêm một phụ thuộc mới vào lớp, bạn sẽ phải bỏ chọn công việc ngoại tuyến hoặc lớp sẽ không thể giải quyết các phụ thuộc. Sau khi giải quyết xong, bạn có thể kiểm tra công việc ngoại tuyến để xây dựng nhanh hơn


11
Làm việc tuyệt vời. Từ 12 phút đến 5 giây
Ramesh

18
Cấu hình này sẽ không tìm nạp các thư viện mới khi chúng ta thêm chúng vào build.gradle?
Dany Y

48
Khi bạn thêm một thư viện mới thì bạn phải làm cho nó trực tuyến chỉ trong một lần sẽ được thông báo bằng cách xây dựng lớp để làm cho dự án có thể chạy được @DanyY
Biswajit Karmakar

15
Có nghĩa là tất cả thời gian vấn đề là tốc độ internet thay vì tốc độ xử lý?

1
Ái chà! Đã đi từ hơn 15 phút đến 1 phút: O
Hồng y - Phục hồi Monica

150

Nếu bạn đang sử dụng dịch vụ Google Play, hãy đảm bảo bạn không sử dụng dịch vụ này trong tập lệnh xây dựng Gradle của mình:

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

Chỉ sử dụng các API Google mà ứng dụng của bạn thực sự đang sử dụng. Nếu tất cả những gì bạn đang sử dụng là Google Maps, bạn sẽ sử dụng điều này:

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

Khi tôi làm điều này, thời gian biên dịch của tôi đã tăng từ hơn 2 phút đến khoảng 25 giây. Để biết danh sách các apis Google mà bạn có thể biên dịch có chọn lọc, hãy xem:

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


12
Bạn xứng đáng nhận được hơn 100 lượt upvote. Mọi nguồn khác đều đề xuất thêm org.gradle.parallel=truevà dòng lệnh liên quan ... nhưng không có nguồn nào cung cấp sự hiểu biết đơn giản và dễ hiểu về những gì đang thực sự xảy ra. Sử dụng lời khuyên của bạn, thời gian xây dựng của tôi tăng từ 1 phút 5 giây, xuống còn 3,427 giây. Tuyệt vời!!
Sauron

Cảm ơn rất nhiều, đây cũng là vấn đề chính của tôi. Bây giờ mọi thứ làm việc tuyệt vời.
alnaji

1
Công trình tuyệt vời. Sử dụng liên kết này để tìm tên thư viện dịch vụ chơi của bạn: developers.google.com/android/guides/,
PC.

Bạn xứng đáng được đánh dấu ... Bạn đã giải quyết vấn đề của tôi. Vấn đề là trên các dịch vụ google play ... Cảm ơn :)
Karue Benson Karue

Điều này không chỉ giúp giải quyết vấn đề xây dựng lâu dài mà giờ đây tôi còn có thể triển khai trực tiếp lên thiết bị Android mà không cần sử dụng Proguard khi gỡ lỗi (trước đây tôi đã gặp lỗi về giới hạn phương thức 65K). cảm ơn!
magritte

52

Tìm thấy một cách dễ dàng và tốt nhất để xây dựng lớp

đi tới ứng dụng của bạn >> mở gradle.properies của bạn và thay đổi vài dòng từ nó [remove # ]

nếu không bạn cũng có thể sao chép dán đoạn trích dưới đây của tôi

    # 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

nó làm việc cho tôi sớm hơn mất gần 2-3 phút và bây giờ chỉ mất 5-6 giây

trong kịch bản trên, máy mac của tôi có ram 8GB, vì vậy tôi đã gán 4gb cho gradle


Điều này đã giảm thời gian xây dựng của tôi từ hơn 30 phút xuống còn 24 phút ... Có cách nào để giảm thêm nữa không ...?
Lập trình Cướp biển

34

Tìm thấy lý do !! Nếu Android Studio có cài đặt máy chủ proxy và không thể truy cập máy chủ thì phải mất một thời gian dài để xây dựng, có lẽ nó đang cố gắng truy cập máy chủ proxy và chờ thời gian chờ. Khi tôi gỡ bỏ máy chủ proxy, nó sẽ hoạt động tốt.

Xóa proxy: File > Settings > Appearance & Behavior > System settings > HTTP Proxy


3
Làm thế nào để loại bỏ máy chủ proxy?
Joolah

2
Trên Tệp Windows> Cài đặt> Giao diện & Hành vi> Cài đặt hệ thống> Proxy HTTP
Harish

2
Vấn đề của tôi cũng là về proxy, nhưng trong đó, tôi đã phải thêm proxy HTTPS trong các thuộc tính lớp. Proxy HTTP là không đủ: 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 là trò đùa hoàn chỉnh và bs. Tôi chỉ mệt mỏi về điều vô nghĩa này.
The_Martian

9
Tôi đồng ý!!! Tôi đang chịu đựng nỗi đau đớn khôn cùng khi di chuyển một dự án lớn từ Eclipse và bây giờ các lỗi đã được xóa, việc xây dựng với AS không bao giờ kết thúc !!! Tôi ghét AS @The_Martian
Josh

20

Thực hiện theo các bước sẽ làm cho nó nhanh hơn 10 lần và giảm thời gian xây dựng 90%

Đầu tiên tạo một tệp có tên gradle.properies trong thư mục sau:

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

Thêm dòng này vào tập tin:

org.gradle.daemon=true

org.gradle.parallel=true

4
Bạn có thể đặt nó trực tiếp từ gradle.properies nằm trong dự án studio.
Biswajit Karmakar

3
Có cũng kích hoạt tùy chọn này org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
user779370

2
Đặt MaxPermSize = 1024m
Biswajit Karmakar

Tại sao những tính chất đó không được xác định trước ?? Có bất kỳ nhược điểm?
oli

Tùy chọn này chỉ nên được sử dụng với các dự án tách rời. Để biết thêm chi tiết, hãy truy cập gradle.org/docs/cản/userguide/ từ
javad

17

Kích hoạt các tính năng Java 8 gây ra việc xây dựng chậm chết người

lớp

 jackOptions {
        enabled true
  }

  compileOptions {
    targetCompatibility 1.8
    sourceCompatibility 1.8
}

Sau khi xóa các dòng trên, nó sẽ được xây dựng trong vài giây.

Có vấn đề Biên dịch với Jack mất nhiều thời gian

Trả lời của người quản lý dự án

Chúng tôi biết rằng thời gian xây dựng là một vấn đề với Jack ngay bây giờ. Chúng tôi có các cải tiến trong plugin 2.4 Gradle nên là một cải tiến đáng kể cho các bản dựng gia tăng.

Đến bây giờ, phiên bản Gradle mới nhất tôi có thể tìm thấy là 2.3.0-beta4


4
Vâng tôi đồng ý. Để kích hoạt java 8 trong studio android, bạn cần sử dụng Jack và bằng cách này, thời gian xây dựng của tôi bay lên mặt trăng từ 1-2 phút xây dựng đến 16 phút ... những gì .... Nó không thể sử dụng được ngay bây giờ. Như mọi khi công việc tuyệt vời Google
Karol ygłowicz


7

Giải pháp @AndroidDev làm việc cho tôi. Tôi đã bao gồm toàn bộ lib trong lớp.

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

Thay đổi để giải quyết vấn đề. Từ 4 phút đến 1 phút.

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

Thnx


4

Kiểm tra kết nối Internet của bạn . Nếu tốc độ internet rất chậm thì việc xây dựng lớp cũng sẽ mất nhiều thời gian để xây dựng. Tôi kiểm tra bằng cách thay đổi kết nối internet wifi với một kết nối tốc độ tốt khác. Bây giờ thời gian xây dựng là bình thường. Vui lòng thử điều này trước khi bạn đi đến các giải pháp khác. Ai đó sẽ đưa ra quyết định sai lầm để cài đặt lại hoặc thay đổi cài đặt. Tôi mong nó sẽ có ích. Cảm ơn và trân trọng.


Hãy chắc chắn cho phép Android Studio trên Tường lửa. Đang đợi gần 15 phút cho lớp trên một bản cài đặt mới thì đột nhiên cửa sổ bật lên Tường lửa yêu cầu tôi cho phép. Có thể đã sớm hơn
Mohd.Zafranudin

2

1) Thời gian xây dựng của tôi tăng lên đáng kể sau khi tôi thêm một số phụ thuộc thư viện mới vào tệp lớp của mình, điều đó hóa ra là tôi cần sử dụng multidex sau đó. Và khi tôi thiết lập multidex chính xác thì thời gian xây dựng của tôi lên tới 2-3 phút. Vì vậy, nếu bạn muốn thời gian xây dựng nhanh hơn, tránh sử dụng multidex, và càng nhiều càng tốt, giảm số lượng phụ thuộc thư viện.

2) Ngoài ra, bạn có thể thử bật "công việc ngoại tuyến" trong studio android, như được đề xuất ở đây, điều đó có ý nghĩa. Điều này sẽ không tải lại thư viện mỗi khi bạn tạo bản dựng. Có lẽ kết nối chậm hoặc sử dụng proxy / vpn với "công việc ngoại tuyến" bị vô hiệu hóa có thể dẫn đến thời gian xây dựng chậm.

3) dịch vụ google - như đã đề cập ở đây, không sử dụng toàn bộ gói, chỉ sử dụng các phần cần thiết của nó.


1

Trong phiên bản beta của Android studio 2.0, họ đã đưa ra một tính năng gọi là Instant Run . Nó làm giảm thời gian xây dựng bởi một yếu tố lớn. Khái niệm cốt lõi là, Android Studio chỉ đẩy những thay đổi nhỏ được thực hiện vào một ứng dụng đã chạy.

Nó phân loại các thay đổi mà chúng tôi thực hiện trong mã của mình thành ba phần: trao đổi nóng, trao đổi ấm và trao đổi lạnh, dựa trên mức độ thay đổi sẽ đưa vào bản dựng. Sau đó, nó chỉ cần hoán đổi mã trong ứng dụng đã chạy và chúng ta có thể thấy các thay đổi đang chạy trong vài giây. Xem tài liệu của họ để biết thêm thông tin.

Tại đây bạn có thể tải xuống bản xem trước Android Studio 2.0.

PS: Có một vài vấn đề với tính năng này. Họ đã liệt kê nó ra tại các tài liệu. Kiểm tra nó trước khi cài đặt.


1
  1. Chuyển đến Tệp-> Cài đặt -> Lớp -> Đặt chế độ ngoại tuyến và kiểm tra

1

Tôi đã phải đối mặt với cùng một vấn đề trong một thời gian dài nhưng tôi đã giải quyết nó bằng cách điều chỉnh các cài đặt trong lớp.

Bước 1: Trong ứng dụng Mô-đun thêm phụ thuộc vào BuildScript

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

Bước 2: Thêm dexOption và đưa ra heapSize sau

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

Bước 3: Thêm sản phẩmFlavors

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

    }
}

Điều này sẽ làm giảm thời gian xây dựng của bạn.


0

Nếu bạn đang sử dụng Windows 8 ...

Các giải pháp DroidArc và AndroidDev hữu ích, nhưng không khó khăn. Vấn đề của tôi liên quan đến HĐH Windows 8 của tôi và việc sử dụng đĩa 100%.

Đặc biệt là dịch vụ Windows Search, là tiêu thụ nhiều nhất. Vô hiệu hóa nó với: cmd (Quản trị viên)> net.exe dừng "Tìm kiếm Windows"

Tôi đã làm theo hướng dẫn trong liên kết này và nó đã giải quyết vấn đề cho 4 Mẹo thực sự để khắc phục 100% sử dụng đĩa & cải thiện hiệu suất Windows

Hi vọng điêu nay co ich.


0

Tôi đã có cùng một vấn đề trong kotlin. Cập nhật thời gian chạy kotlin lỗi thời đã giải quyết nó cho tôi


0

Tôi đã có vấn đề như thế này đặc biệt là khi gỡ lỗi tích cực qua điện thoại của tôi; có lúc mất 27 phút. Tôi đã làm những điều sau đây và ghi chú lại lời giải thích bên dưới - mỗi người có thể làm việc cho bạn:

  1. Đã thay đổi tệp gradle.properIES của tôi (trong tập lệnh Gradle nếu bạn có chế độ xem tệp dự án trong tùy chọn Android HOẶC trong thư mục dự án của bạn). Tôi đã thêm điều này vì máy tính của tôi có một số bộ nhớ dự phòng - bạn có thể gán các giá trị khác nhau ở cuối tùy thuộc vào thông số kỹ thuật máy tính của bạn và yêu cầu tối thiểu của studio android (Xmx8000m -XX: MaxPermSize = 5000m):

org.gradle.daemon = true

org.gradle.configureondemand = true

org.gradle.pool = true

android.enableBuildCache = đúng

org.gradle.caching = true

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

  1. Điều này đã không hoàn toàn giải quyết vấn đề của tôi trong trường hợp của tôi. Do đó, tôi cũng đã làm như những người khác đã đề xuất trước đây - để thực hiện quá trình xây dựng của mình ngoại tuyến:

Tệp -> Cài đặt / Tùy chọn -> Xây dựng, Thi hành, Triển khai -> Lớp

Cài đặt cấp độ toàn cầu (ở dưới cùng)

Đánh dấu vào hộp kiểm có tên: Công việc ngoại tuyến.

  1. Điều này giảm thời gian đáng kể nhưng nó thất thường; nhiều lúc mất nhiều thời gian Vì vậy, tôi đã thực hiện một số thay đổi trên Instant Run:

Tệp -> Cài đặt / Tùy chọn -> Xây dựng, Thực thi, Triển khai -> Chạy ngay lập tức

Đã kiểm tra: Kích hoạt tính năng Instant Run để trao đổi mã nóng ...

Đã kiểm tra: khởi động lại hoạt động thay đổi mã ...

  1. Việc di chuyển ở trên cũng thất thường và do đó tôi đã cố gắng tìm hiểu xem vấn đề có thể là các quá trình / bộ nhớ chạy trực tiếp trên điện thoại và máy tính của tôi không. Ở đây, tôi đã giải phóng một ít bộ nhớ trong điện thoại và bộ lưu trữ của mình (được sử dụng 98% - giảm tới 70%) và cả trên trình quản lý tác vụ (Windows), tăng mức độ ưu tiên của cả Android Studio và Java.exe lên Cao. Thực hiện bước này một cách thận trọng; phụ thuộc vào bộ nhớ máy tính của bạn.

  2. Sau tất cả, thời gian xây dựng của tôi trong khi gỡ lỗi tích cực trên điện thoại của tôi, đôi khi giảm xuống còn 1 ~ 2 phút nhưng đôi khi tăng vọt. Tôi đã quyết định thực hiện một bản hack khiến tôi ngạc nhiên khi hạ nó xuống còn vài giây tốt nhất trong cùng một dự án đã cho tôi 22 - 27 phút là 12 giây!:

Kết nối điện thoại để gỡ lỗi, sau đó nhấp vào CHẠY

Sau khi khởi động, rút ​​phích cắm điện thoại - quá trình xây dựng sẽ tiếp tục nhanh hơn và phát sinh lỗi ở cuối cho biết điều này: Phiên 'ứng dụng': Lỗi khi cài đặt APK

Kết nối lại điện thoại và bấm vào CHẠY lần nữa ...

THAY ĐỔI

Nếu tập lệnh / hàm / phương thức tôi gỡ lỗi hoàn toàn là JAVA, không phải JAVA-android, ví dụ: thử nghiệm API với JSONArrays / JSONObjects, tôi sẽ kiểm tra các hàm / phương thức java của mình trên Netbeans có thể biên dịch một tệp duy nhất và hiển thị đầu ra nhanh hơn những thay đổi cần thiết trên các tệp Android Studio của tôi. Điều này cũng giúp tôi tiết kiệm rất nhiều thời gian.

BIÊN TẬP

Tôi đã thử tạo một dự án Android mới trong bộ nhớ cục bộ và sao chép tất cả các tệp của tôi từ dự án trước vào dự án mới - java, res, tệp kê khai, ứng dụng lớp và dự án lớp (với sự phụ thuộc lớp đường lớp mới nhất). Và bây giờ tôi có thể xây dựng trên điện thoại của mình trong vòng chưa đầy 15 giây.


0

Trong build.gradle của bạn, nếu bạn có minifyEnables để gỡ lỗi, hãy xóa nó. Tôi đã có nó trong dự án của tôi và phải mất ~ 2-3 phút để xây dựng. Sau khi xem tiến độ xây dựng, tôi thấy đây là thủ phạm, vì vậy xóa dòng bình luận bên dưới, vấn đề của tôi đã được khắc phục.

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


0

Tôi đã có cùng một vấn đề, ngay cả việc xây dựng lớp đã chạy trong 8 giờ và tôi đã lo lắng. Nhưng sau này tôi đã thay đổi phiên bản sdk biên dịch và phiên bản sdk tối thiểu trong tệp build.gradle như thế này.

Lớn hơn:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

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

Mới (Cập nhật):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

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

-2

Tôi đã có một vấn đề tương tự trên máy tính của tôi. Windows Defender đã chặn một số phần của Gradle Building. Tôi đã vô hiệu hóa nó, làm việc tốt sau đó.


-43

Hãy thử khởi động lại máy tính của bạn và chạy lại Android Studio. Làm việc cho tôi khi cố gắng xây dựng dự án Cordova / Phonegap với cơ sở mã mục tiêu Android.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.