native-run doesn't walk symlinks in SDK packages, thus cannot detect API levels

オープン
#305 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
52/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
typescript
領域
cli

調査の方向性

src/android/utils/sdk/index.ts から始め、特に findAllSDKPackages で使用されている readdirp ベースの走査を確認します。SDK スキャンが platforms、sources、system-images などのシンボリックリンクされたディレクトリをどのように処理するかを確認し、その後 Android Studio 形式の SDK に対して native-run android --sdk-info を実行します。空のリストを報告するのではなく、インストール済みの API レベルが検出されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

android

Version:

1.7.2

Description:

Native-run can't find the installed API levels in my SDK when it is perfectly fine in Android studio.

And as a bonus, I dig through the source code, turns out it is walking through every folders and find package.xml to find api-level string in them
https://github.com/ionic-team/native-run/blob/88a49944427f1bd4a33e6f53d511f9c49330ebe6/src/android/utils/sdk/index.ts

In here, it uses readdirp to list directories to walk through, but the walk is missing folders such as platforms, sources, system-images and those folders are all symlinked (due to how android studio does things).

This is very annoying, definitely a bug.

Command Output:

  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_HOME +0ms
  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_SDK_ROOT +2ms
  native-run:android:utils:sdk:resolveSDKRoot Using $ANDROID_SDK_ROOT at /usr/local/Cellar/android-sdk/24 +2ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking for $ANDROID_EMULATOR_HOME +0ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking at $HOME/.android +1ms
  native-run:android:utils:sdk:resolveEmulatorHome Using $HOME/.android/ at /Users/penn/.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 /Users/penn/.android/avd +1ms
  native-run:android:utils:sdk:findAllSDKPackages Walking /usr/local/Cellar/android-sdk/24 to discover SDK packages +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/emulator/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/platform-tools/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/tools/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/build-tools/30.0.2/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/build-tools/34.0.0-rc3/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/cmdline-tools/latest/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/patcher/v4/package.xml +0ms
  native-run:android:utils:sdk:api:getAPILevels Discovered installed API Levels: [] +0ms
SDK Location:         /usr/local/Cellar/android-sdk/24
AVD Home:             /Users/pencilcheck/.android/avd


Tools:

Android Emulator  emulator  32.1.12
Android SDK Build-Tools 30.0.2  build-tools;30.0.2  30.0.2
Android SDK Build-Tools 34-rc3  build-tools;34.0.0-rc3  34.0.0
Android SDK Command-line Tools (latest)  cmdline-tools;latest  9.0
Android SDK Platform-Tools  platform-tools  34.0.1
Android SDK Tools  tools  26.1.1
SDK Patch Applier v4  patcher;v4  1

SDK Info:

  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_HOME +0ms
  native-run:android:utils:sdk:resolveSDKRoot Looking for $ANDROID_SDK_ROOT +2ms
  native-run:android:utils:sdk:resolveSDKRoot Using $ANDROID_SDK_ROOT at /usr/local/Cellar/android-sdk/24 +2ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking for $ANDROID_EMULATOR_HOME +0ms
  native-run:android:utils:sdk:resolveEmulatorHome Looking at $HOME/.android +1ms
  native-run:android:utils:sdk:resolveEmulatorHome Using $HOME/.android/ at /Users/penn/.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 /Users/penn/.android/avd +1ms
  native-run:android:utils:sdk:findAllSDKPackages Walking /usr/local/Cellar/android-sdk/24 to discover SDK packages +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/emulator/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/platform-tools/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/tools/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/build-tools/30.0.2/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/build-tools/34.0.0-rc3/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/cmdline-tools/latest/package.xml +0ms
  native-run:android:utils:sdk:getSDKPackage Parsing /usr/local/Cellar/android-sdk/24/patcher/v4/package.xml +0ms
  native-run:android:utils:sdk:api:getAPILevels Discovered installed API Levels: [] +0ms
SDK Location:         /usr/local/Cellar/android-sdk/24
AVD Home:             /Users/pencilcheck/.android/avd


Tools:

Android Emulator  emulator  32.1.12
Android SDK Build-Tools 30.0.2  build-tools;30.0.2  30.0.2
Android SDK Build-Tools 34-rc3  build-tools;34.0.0-rc3  34.0.0
Android SDK Command-line Tools (latest)  cmdline-tools;latest  9.0
Android SDK Platform-Tools  platform-tools  34.0.1
Android SDK Tools  tools  26.1.1
SDK Patch Applier v4  patcher;v4  1
主要言語
TypeScript
スター
139
フォーク
35
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ionic-team/native-run のほかの issue

ionic-team/native-run の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。