2015-06-02 26 views
8

Thời gian xây dựng ngay bây giờ là khoảng ~ 2-4 phút.Gradle build cực kỳ chậm

Tôi đang sử dụng khoảng 11 thư viện được cung cấp qua Gradle.

tôi có các thiết lập sau:

buildTypes { 
    debug { 
     multiDexEnabled = true 
     applicationIdSuffix ".debug" 
     minifyEnabled false 
     proguardFile 'proguard-rules.pro' 
    } 
} 

dexOptions { 
    javaMaxHeapSize "4096M" 
    preDexLibraries false 
    jumboMode = true 
    incremental = true 
} 

Gradle: Offline mode

tôi có các thiết lập sau đây trong gradle.properties org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

Trong các tính chất toàn cầu Tôi có:

org.gradle.daemon=true 
org.gradle.parallel=true 
org.gradle.configureondemand=true 

Tôi đã xem xét tất cả các bài viết tôi có thể tìm thấy trên Google/Stackoverflow.

Có cách nào để tăng tốc quá trình lên đến dưới 1 phút ít nhất không?

Cập nhật ngày 06 tháng tám 2015

Những tốc độ điều thực sự đã giúp cho tôi.

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip 

build.gradle dự án phụ thuộc

classpath 'com.android.tools.build:gradle:1.3.0' 

Cập nhật 09 tháng 8 năm 2015

Tôi đã phát hiện ra rằng vì nó hóa ra sử dụng Protoc là rất rất chậm cho Android. Tôi chuyển sang Wire và mất khoảng thời gian biên dịch từ 2 phút. đến 10 giây -30.

Trả lời

1

Tôi thấy rằng multiDexEnabled = true làm cho quy trình xây dựng của tôi cực kỳ chậm. Tôi không biết nếu nó có thể cải thiện hiệu suất của nó bằng cách nào đó, nhưng bây giờ tôi chỉ cần tắt nó đi.

Bạn phải sử dụng nó chỉ khi số lượng phương pháp trong dự án của bạn (bao gồm cả thư viện) vượt quá giới hạn 65k. Có lẽ bạn có thể cắt bỏ một số trong số 11 thư viện của bạn, sau đó tắt tùy chọn multiDexEnabled nên giải quyết vấn đề của bạn.

1

Bạn cũng có thể nâng cấp gradle bằng cách chỉnh sửa các tập tin và thiết lập gradle-wrapper.properties gradle-2.4-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip 
0

Bạn cần phải bật gradle daemon.

Tạo một file có tên gradle.properties trong thư mục sau:

  • /home//.gradle/ (Linux)
  • /Users//.gradle/ (Mac)
  • C: \ Users \.gradle (Windows)

Thêm dòng này vào file:

org.gradle.daemon=true 

Từ giờ trở đi Gradle sẽ sử dụng một daemon để xây dựng, cho dù bạn đang sử dụng Gradle từ dòng lệnh hoặc xây dựng trong Android Studio.

Các vấn đề liên quan