Improve parsing of adb errors

Đang mở
#89 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
android, typescript
Lĩnh vực
mobile-dev, tooling

Hướng nghiên cứu

Bắt đầu tại android/utils/adb.js, đặc biệt là entry point installApk được hiển thị trong stack trace chi tiết, và theo dõi cách output cài đặt của adb trở thành lỗi được báo cáo. Hoàn tất khi thông báo INSTALL_FAILED_OLDER_SDK cụ thể được hiển thị thay vì chỉ có ERR_UNKNOWN; payload không nêu tên tệp kiểm thử.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

android

Version:

0.2.9

Description:

When installing an APK that requires a newer Android SDK version, an ERR_UNKNOWN error is displayed, but adb specifically displays an INSTALL_FAILED_OLDER_SDK error.

I've tried looking for the 'adb' source code in order to find a list of known errors, but I couldn't find anything, so I've created this issue in the hope that someone knows where those errors are listed so that we can improve the output in case of 'adb' errors.

Command Output:

native-run without --verbose

$ native-run android --app app-debug.apk
No hardware devices found, attempting emulator...
Selected emulator emulator-5554
Installing app-debug.apk...
ERR_UNKNOWN: Non-zero exit code from adb: 1

Default adb command output

$ adb install app-debug.apk
Performing Streamed Install
adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl2031034771.tmp/base.apk (at Binary XML file line #8): Requires newer sdk version #25 (current version is #24)]

Default adb command exit code

$ echo $?
1

native-run with --verbose

$ native-run android --app app-debug.apk --verbose
  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_HOME +0ms
  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_SDK_ROOT +1ms
  native-run:android:utils:sdk:resolveSDKRoot Using $ANDROID_SDK_ROOT at /opt/Android/SDK +2ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking for $ANDROID_EMULATOR_HOME +0ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking at $HOME/.android +0ms
  native-run:android:utils:sdk:resolveEmulatorHome Using $HOME/.android/ at /home/user/.android +0ms
  native-run:android:utils:sdk:resolveAVDHome Looking for $ANDROID_AVD_HOME +0ms
  native-run:android:utils:sdk:resolveAVDHome Looking at $HOME/.android/avd +0ms
  native-run:android:utils:sdk:resolveAVDHome Using $HOME/.android/avd/ at /home/user/.android/avd +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /opt/Android/SDK/platform-tools/package.xml +0ms
  native-run:android:utils:adb:getDevices Invoking adb: '/opt/Android/SDK/platform-tools/adb' [ 'devices', '-l' ] +0ms
  native-run:android:utils:adb:parseAdbDevices Parsing adb devices from output lines: [ 'List of devices attached',
  native-run:android:utils:adb:parseAdbDevices   'emulator-5554          device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 transport_id:2',
  native-run:android:utils:adb:parseAdbDevices   '',
  native-run:android:utils:adb:parseAdbDevices   '' ] +0ms
  native-run:android:utils:adb:getDeviceProperties Invoking adb: '/opt/Android/SDK/platform-tools/adb' [ '-s', 'emulator-5554', 'shell', 'getprop' ] +0ms
  native-run:android:utils:adb:getDevices Found adb devices: [ { serial: 'emulator-5554',
  native-run:android:utils:adb:getDevices     state: 'device',
  native-run:android:utils:adb:getDevices     type: 'emulator',
  native-run:android:utils:adb:getDevices     connection: null,
  native-run:android:utils:adb:getDevices     properties:
  native-run:android:utils:adb:getDevices      { product: 'sdk_google_phone_x86_64',
  native-run:android:utils:adb:getDevices        model: 'Android_SDK_built_for_x86_64',
  native-run:android:utils:adb:getDevices        device: 'generic_x86_64',
  native-run:android:utils:adb:getDevices        transport_id: '2' },
  native-run:android:utils:adb:getDevices     manufacturer: 'unknown',
  native-run:android:utils:adb:getDevices     model: 'Android SDK built for x86_64',
  native-run:android:utils:adb:getDevices     product: 'sdk_google_phone_x86_64',
  native-run:android:utils:adb:getDevices     sdkVersion: '24' } ] +34ms
  native-run:android:utils:avd:getAVDINIs Discovered AVD ini files: [ '/home/user/.android/avd/A10_-_Pixel_XL.ini',
  native-run:android:utils:avd:getAVDINIs   '/home/user/.android/avd/A7_-_Pixel_XL.ini' ] +0ms
No hardware devices found, attempting emulator...
  native-run:android:utils:run:selectVirtualDevice Found running emulator: emulator-5554 +0ms
Selected emulator emulator-5554
  native-run:android:utils:adb:getDeviceProperty Invoking adb: '/opt/Android/SDK/platform-tools/adb' [ '-s', 'emulator-5554', 'shell', 'getprop', 'dev.bootcomplete' ] +0ms
  native-run:android:utils:adb:waitForBoot Device emulator-5554 is booted! +0ms
Installing app-debug.apk...
  native-run:android:utils:adb:installApk Invoking adb: '/opt/Android/SDK/platform-tools/adb' [ '-s', 'emulator-5554', 'install', '-r', '-t', 'app-debug.apk' ] +0ms
  native-run:android:utils:adb:installApk adb install: 'adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl1076703040.tmp/base.apk (at Binary XML file line #8): Requires newer sdk version #25 (current version is #24)]' +494ms
  native-run Caught fatal error: { Error: Non-zero exit code from adb: 1
  native-run     at ChildProcess.p.on.code (/opt/node-global/lib/node_modules/native-run/dist/android/utils/adb.js:130:24)
  native-run     at ChildProcess.emit (events.js:198:13)
  native-run     at maybeClose (internal/child_process.js:982:16)
  native-run     at Socket.stream.socket.on (internal/child_process.js:389:11)
  native-run     at Socket.emit (events.js:198:13)
  native-run     at Pipe._handle.close (net.js:606:12) code: undefined, exitCode: 1, data: undefined } +0ms
ERR_UNKNOWN: Non-zero exit code from adb: 1

SDK Info:

$ native-run android --sdk-info
SDK Location:         /opt/Android/SDK
AVD Home:             /home/user/.android/avd

API Level:            29
Packages:             Android SDK Platform 29  platforms;android-29  3
                      Google APIs Intel x86 Atom System Image  system-images;android-29;google_apis;x86  8
                      Google Play Intel x86 Atom_64 System Image  system-images;android-29;google_apis_playstore;x86_64  8
                      Sources for Android 29  sources;android-29  1


API Level:            25
Packages:             Android SDK Platform 25  platforms;android-25  3
                      Google APIs Intel x86 Atom System Image  system-images;android-25;google_apis;x86  16
                      Google APIs Intel x86 Atom_64 System Image  system-images;android-25;google_apis;x86_64  16
                      Sources for Android 25  sources;android-25  1


API Level:            24
Packages:             Android SDK Platform 24  platforms;android-24  2
                      Google APIs Intel x86 Atom System Image  system-images;android-24;google_apis;x86  25
                      Google APIs Intel x86 Atom_64 System Image  system-images;android-24;google_apis;x86_64  25
                      Sources for Android 24  sources;android-24  1


Tools:

Android Emulator  emulator  29.2.1
Android SDK Build-Tools 29.0.2  build-tools;29.0.2  29.0.2
Android SDK Platform-Tools  platform-tools  29.0.5
Android SDK Tools  tools  26.1.1
SDK Patch Applier v4  patcher;v4  1
Ngôn ngữ chính
TypeScript
Star
141
Fork
35
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ionic-team/native-run

Tất cả issue của ionic-team/native-run

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.