2017-07-14 60 views
11

Tôi đang cố gắng thiết lập Travis CI để chạy thử nghiệm thiết bị trên trình mô phỏng chạy API 25. Travis chạy các kiểm tra để hoàn tất trên API 4/10/19, nhưng không khởi động trình mô phỏng cho API 25, với thông báo sau :Làm thế nào để cài đặt trình giả lập chạy API 25 bằng ma trận dựng trên Travis CI?

$ echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI 
Valid ABIs: no ABIs. 
Error: Invalid --abi armeabi-v7a for the selected target. 

Kết quả của android list targets cho thấy rằng API 19 giả lập có Tag/ABI, trong khi API 25 giả lập không:

id: 7 or "android-19" 
    Name: Android 4.4.2 
    Type: Platform 
    API level: 19 
    Revision: 4 
    Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in 
Tag/ABIs : default/armeabi-v7a 

id: 11 or "android-25" 
    Name: Android 7.1.1 
    Type: Platform 
    API level: 25 
    Revision: 3 
    Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in 
Tag/ABIs : no ABIs. 

Làm thế nào tôi có thể sửa lỗi này để các API 25 giả lập ra mắt và chạy thử nghiệm?

Các đầy đủ .travis.yml tập tin là như sau:

language: android 

android: 
    components: 
    - tools 
    - platform-tools 
    - tools # appears twice as per Travis docs 
    - build-tools-23.0.1 
    - build-tools-25.0.2 
    - android-4 
    - android-10 
    - android-19 
    - android-23 
    - android-25 
    - extra-android-m2repository 
    - sys-img-armeabi-v7a-android-25 

env: 
    matrix: 
    - ANDROID_TARGET=android-4 ANDROID_ABI=armeabi 
    - ANDROID_TARGET=android-10 ANDROID_ABI=armeabi 
    - ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a 
    - ANDROID_TARGET=android-25 ANDROID_ABI=armeabi-v7a 

before_script: 
    # Create and start emulator 
    - android list targets 
    - jdk_switcher use oraclejdk8 
    - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - adb wait-for-device 
    - while [[ `adb shell pm path android` == 'Error'* ]]; do sleep 2; done 
    - adb shell input keyevent 82 & 

script: ./gradlew --info connectedAndroidTest 

sudo: false 
+0

Vì mục tiêu danh sách android cho bạn biết, không có hình ảnh nào được cài đặt ABI trên hệ thống của bạn, bạn có thể thử cài đặt hình ảnh chính xác với ABI. Xem chi tiết tại đây: https://stackoverflow.com/questions/10019532/no-abi-error-when-creating-an-android-virtual-device –

+0

Hiểu biết của tôi là trình giả lập Android cần phải được chỉ định làm thành phần trong xây dựng kịch bản. Điều này khớp với những gì trong Tài liệu Travis CI, mặc dù với mức tăng API Android (https://docs.travis-ci.com/user/languages/android/#Overview). Travis CI nên cài đặt cho tôi - phải không? – fractalwrench

+0

Bạn dường như bị ảnh hưởng bởi sự cố này: https: // github.com/travis-ci/travis-ci/issues/6122 –

Trả lời

8

Lưu ý: phiên bản giả lập 26.1.4+ phiên bản có thể giới thiệu hoặc sửa lỗi. Nếu cần xây dựng lại ci, tùy chọn tốt nhất là tải xuống phiên bản công cụ sdk mong muốn không qua các thành phần của Android.

Lưu ý: phiên bản trình mô phỏng 26.1.3 là here bao gồm các bản sửa lỗi thú vị. Tôi đang bận sửa đổi câu trả lời của tôi bây giờ:

enter image description here

vấn đề liên quan sử dụng giả lập 26.1.2 here. Khởi chạy lại cuối cùng xây dựng like me sử dụng 26.1.3 và cầu nguyện, xanh lá cây

Tôi đang cố gắng để thiết lập Travis CI để nó chạy thiết bị đo đạc thử nghiệm trên một giả lập chạy API 25. Travis chạy các bài kiểm tra để hoàn API 4/10/19, nhưng không khởi động được trình mô phỏng cho API 25 ...

Làm cách nào để khắc phục điều này để trình mô phỏng API 25 khởi chạy và chạy thử nghiệm ?

Cập nhật: Tôi xác nhận rằng ARM Abis cho API 23, 25 và 26 cũng đang thiếu trong Android Studio, vì vậy:

  • Nó không phải là một vấn đề Travis-ci. Tôi sao chép nó tại địa phương như thể hiện trong hình ảnh tiếp theo.

  • Bạn có thể sử dụng ARM ABI cho API-24. Tôi chia dự án của bạn và nó đã làm việc trong xây dựng # 6 (hình ảnh tiếp theo).

  • Bạn có thể sử dụng Google API hình ảnh cho API-25 như tôi giải thích dưới đây bằng cách sử dụng mới sdkmanager: 1

  • Bạn có thể sử dụng Google API hình ảnh cho API-25 sử dụng công cụ di sản nếu bạn biết tên img: 1, 2, 3

  • Chúng tôi cần yêu cầu Google hoặc ai đó tại sao ARM ABIs cho các API này bị thiếu.

Cập nhật:A related bug đã được báo cáo cho Google và thảo luận here, xin vui lòng, sao nó:

Đối với một số lý do nó được đánh dấu như là chỉ có sẵn trên cửa sổ. Tôi là không chắc chắn đây có phải là vấn đề với ADRT hay cấu hình đối với gói này, nhưng từ một cái nhìn nhanh, có vẻ như đó có thể là vấn đề với số với adrt.

enter image description here

enter image description here


Tôi không chắc chắn nếu vấn đề api-25 có liên quan nhưng tôi hy vọng rằng nó sẽ làm việc kết hợp một số giải pháp:

  • Sử dụng hình ảnh hệ thống với google_apis để đơn giản hóa ma trận dựng và tránh thiếu ABI.
  • Sử dụng mới sdkmanageravdmanager theo yêu cầu của Công cụ Sdk gần đây.
  • Sử dụng hình ảnh Trusty mới bao gồm các công cụ này để đơn giản hóa cấu hình Travis-ci hoặc cách khác sử dụng dist: precise như được giải thích here.

Xem các liên kết dưới đây để mẫu làm việc sử dụng một ma trận xây dựng bao gồm Api-25 giả lập.


Tôi đã cập nhật hình ảnh hệ thống api 23 một lần trên macbook qua Android Studio và xuất hiện thông báo về phiên bản mới không được máy tính hỗ trợ, vì vậy tôi sử dụng google_apis.

Tôi cung cấp giải pháp khả thi cho issue nhận xét của Ashish Pathak (Tôi cũng là ardock) here.

Tôi cần cập nhật phản hồi của mình để hỗ trợ hình ảnh Travis-ci mới đi kèm với các công cụ SDK mới.

Công cụ Sdk mới được cài đặt sẵn sẽ đơn giản hóa giải pháp và giảm kích thước tệp YAML.


Theo công bố in this blog post bởi Carmen Andoh và Dominic Jodoin trên 19 tháng 6 năm 2017:

Cập nhật được đến tất cả Ubuntu Trusty 14.04 ảnh

này thế hệ mới của hình ảnh Trusty là đã có sẵn trong sản xuất và có thể được sử dụng bằng cách thêm nhóm: cạnh trong .travis của bạn.yml file:

sudo: required 
dist: trusty 

group: edge # Add this 

Và như đã giải thích here:

Là một chút biết thêm thông tin, hình ảnh Android mới này đi kèm với:

Android SDK 25.2.3 build-cụ- 25.0.2

Công cụ sdkmanager mới - công cụ dòng lệnh cho phép bạn xem, cài đặt, u pdate và gỡ cài đặt các gói cho Android SDK. Thay thế công cụ Android trước đó, hãy xem https://developer.android.com/studio/tools/help/android.html

Ngoài ra, hình ảnh Android mới phải tương thích với retro. Xem toàn bộ danh sách các thành phần Android SDK có thể được chỉ định trong tệp .travis.yml, bao gồm cả công cụ xây dựng-26.0.0-xem trước.

Nhưng họ không sử dụng trình quản lý dữ liệu mới, tôi sẽ cố khắc phục sự cố vào cuối tuần này.

Hoặc, bạn có thể sử dụng các hình ảnh trước đó bằng cách thêm dist: precise.


Các dòng dưới đây là một phần của my answer on a related question: trước những hình ảnh cập nhật:

Full working sample using constraint-layout codelab repository for Android API level 22 to 25:

Hai nhiều mẫu sử dụng sdkmanageravdmanager:

Tài liệu tham khảo

tài liệu chính thức liên quan đến Auto-download missing packages with Gradle

Các new Emulator lựa chọn được giải thích trong Start the Emulator from the Command Line

avdmanagerexplained here thay thế android avd từ SDK tools version 25.3.0

sdkmanagerexplained here cũng được cải tiến để xem và chấp nhận tất cả giấy phép từ dòng lệnh

+0

Cảm ơn bạn đã nỗ lực giúp đỡ. Nhưng tiếc là nó không cung cấp liên kết _any_ cho _currently_ hoạt động. Tôi đã cập nhật .travis.yml như (tôi nghĩ) bạn đã đề xuất trong bài đăng dài này, nhưng trình giả lập vẫn không bắt đầu, ngay cả khi không có "ma trận" :-( Xem https://travis-ci.org/andstatus/andstatus BTW, ba tuần trước, tôi đã tạo ra sự cố trong Travis.ci trình theo dõi lỗi "Trình giả lập Android không hoàn toàn bắt đầu từ ngày 18 tháng 6" và sự cố đó không nhận được bất kỳ câu trả lời nào :-(https://github.com/travis-ci/travis-ci/issues/7981 – yvolk

+0

Bạn nói đúng nhưng đây là [vấn đề khác] (https://stackoverflow.com/q/45060321/1009132) xuất hiện sau khi tôi tạo mẫu. điều tra nó cuối tuần này bằng cách sử dụng dự án của bạn https://travis-ci.org/albodelu/andstatus/builds Câu hỏi này là về thiếu hình ảnh hệ thống cánh tay cho api-25. – albodelu

+0

@yvolk Tôi sẽ tiếp tục vào cuối tuần tới, không may mắn. 26.1.2 bị lỗi, nếu chúng ta sử dụng phiên bản trước, vấn đề bộ nhớ sappears nhưng ứng dụng không được cài đặt vì một lý do khác. – albodelu

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