2015-03-11 27 views
5

Tôi gặp sự cố, khi tôi vẫn thêm hương vị mới, phải mất nhiều thời gian hơn để xây dựng. Tôi thêm nó như thế này:Xây dựng nhiều hương vị sản phẩm quá chậm

productFlavors { 
    okapps { 
     applicationId = 'cz.anywhere.okapps' 
     signingConfig = AdamSigningVariable 
     versionCode = 41 
     versionName = "3.0.1" 

     android.sourceSets { 
     okapps.res.srcDirs = ['src/adam_okapps_resources/res', 'src/okapps/res'] 
     } 
    } 
    ... 
    ... 
} 

Khi tôi nhận xét tất cả các hương vị khác và chỉ có một là không được chú ý và xây dựng, phải mất khoảng 10 giây. Nhưng khi tôi xây dựng tất cả (khoảng 180 hương vị), phải mất gần 5 phút.

+0

Cập nhật plugin Gradle thử nghiệm mới nhất và hiệu suất kém vẫn còn. Trong trường hợp của tôi, tự động tạo ra khoảng 300 sản phẩm hương vị (gỡ lỗi + phát hành) mất 3 đến 4,5 phút trên MacBook Pro 2015 với Intel Core i5 2.7GHz và 8GB RAM. – Farley

Trả lời

3

Bạn có thể thử và bỏ qua những hương vị sản phẩm khác mà bạn không sử dụng, chúng tôi đã làm điều đó như sau:

Thêm vào build.gradle

android { 
productFlavors{ 
. 
. 
. 
} 

if (project.rootProject.file('dev.props').exists()){ 
    android.variantFilter { variant -> 
     def devProps = new Properties(); 
     devProps.load(project.rootProject.file('dev.props').newDataInputStream()) 

     def currentDevFlavor = devProps.DEV_FLAVOR; 
     def flavorName = variant.getFlavors().get(0).name; 

     if(currentDevFlavor && !flavorName.equals(currentDevFlavor)) { 
      variant.setIgnore(true); 
      } 
     } 
    } 
} 

Và sau đó thêm một tập tin dev.props với dòng DEV_FLAVOR=aflavorname

Bằng cách này khi bạn đồng bộ, gradle sẽ hoạt động như chỉ có một hương vị, và bạn không cần phải bình luận gì cả.

Bạn cũng có thể thêm dev.props đến .gitignore.

+0

Tôi gặp vấn đề tương tự như OP. Điều này làm việc tuyệt vời cho tôi. Cảm ơn! – dpalmer

+0

'aflavorname' tôi có nên thay đổi nó mỗi khi tôi thay đổi hương vị của mình, hoặc chúng ta có thể làm cho nó năng động theo hương vị được chọn không? –

+0

Vâng ... một khi bạn đã thêm 'aflavorname' bạn KHÔNG THỂ thay đổi hương vị ... vì vậy tôi đoán bạn phải thay đổi nó mỗi khi bạn muốn thay đổi hương vị và bạn không thể làm điều đó năng động – MTZ4

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