2016-03-22 13 views
12

tôi có thể tham khảo connectedCheck nhiệm vụ (trong đó đến từ plugin android) từ xây dựng kịch bản của tôi:Tại sao tôi không thể sử dụng tác vụ gradle được kết nốiDebugAndroidTest trong tập lệnh xây dựng của tôi?

connectedCheck.finalizedBy AndroidShowTestResults 

Nhưng cố gắng sử dụng connectedDebugAndroidTest (mà đến từ plugin android quá)

connectedDebugAndroidTest.finalizedBy AndroidShowTestResults 

cho tôi

Error:(48, 0) Could not find property 'connectedDebugAndroidTest' on project ':app'.

A thứ nếu tôi cố gắng

task connectedDebugAndroidTest << {print '123'} 

nó nguyền rủa tôi với

Error:Cannot add task ':app:connectedDebugAndroidTest' as a task with that name already exists.

Tôi không undestand tại sao tôi không thể tham khảo connectedDebugAndroidTest?

nhiệm vụ gradle sẵn được hiển thị dưới đây:

Gradle tasks

Trả lời

3

Plugin android trì hoãn việc bổ sung một số nhiệm vụ đặc biệt là những người có buildType hoặc hương vị tên trong họ đến một giai đoạn rất muộn trong giai đoạn cấu hình. Điều này có nghĩa là nếu bạn cố gắng tham khảo các tác vụ chưa được thêm vào này theo tên, bạn có thể thấy thông báo lỗi kiểu "không tồn tại". Nếu bạn muốn thêm phụ thuộc xung quanh nhiệm vụ trì hoãn tạo ra, bạn nên đợi cho đến khi cấu hình hoàn tất:

gradle.projectsEvaluated { 
    connectedDebugAndroidTest.finalizedBy AndroidShowTestResults 
} 

Ngoài ra, bạn có thể thêm một người biết lắng nghe để có thể thao tác đồ thị sự kiện, vì vậy bạn có thể làm công cụ ngay sau khi một số công việc được thêm vào biểu đồ công việc:

tasks.whenTaskAdded { task -> 
    if (task.name == 'connectedDebugAndroidTest') { 
     task.finalizedBy AndroidShowTestResults 
    } 
} 
+0

Tôi xin lỗi tôi đã không thể cung cấp cho bạn tiền thưởng - acc của tôi đã bị đình chỉ. Cảm ơn câu trả lời giải thích. Đoạn mã đầu tiên không hoạt động nhưng không thực hiện được. – Alexey

+1

Đoạn mã đầu tiên làm việc cho tôi – thepner

-1

Tôi nghĩ bạn nên cố gắng mở thử nghiệm và xây dựng lại.

enter image description here

+0

Tôi thậm chí không có hộp kiểm này. Android Studio 1.5.1. – Alexey

0

Hãy thử

task connectedTest(dependsOn: ["connectedDebugAndroidTest"]){ 

} 
connectedTest.finalizedBy "AndroidShowTestResults" 
Các vấn đề liên quan