内容
NativeScriptのSetup Android EmulatorsSetup Android Emulatorsに沿ってAndoroidエミュレーターの作成をしたところ、エラーとなった。
>avdmanager create avd -n test -k "system-images;android-25;google_apis;x86"
Error: Package path is not valid. Valid system image paths are:ository...
null
結論としては、「-k」で指定した"system-images;android-25;google_apis;x86"をsdkmanagerでインストールすれば解決した。
このエラーの解消にあたって確認したことと、解消方法を記載。
確認したこと
①avdmanagerのマニュアル確認
Android Studioユーザーガイド > avdmanager
https://developer.android.com/studio/command-line/avdmanager?hl=ja
create avd -n name -k "sdk_id"
引用符で囲んだ sdk_id を使用して、AVD に使用する SDK パッケージの ID を指定します。
エラーメッセージのPackage path is not valid.とマニュアルのSDK パッケージの IDに関連があるのではないかと推測。
②sdkmanagerのマニュアル確認
Android Studioユーザーガイド > sdkmanager
https://developer.android.com/studio/command-line/sdkmanager?hl=ja
インストール済みで利用可能なパッケージのリストを表示する
sdkmanager --list [options]
avd createで指定したSDKのパッケージが利用可能なパッケージではないのではないかと推測。
③sdkmanager --listの実行
以下の内容が出力。大量の「Available Packages」の中にavdmanager createで指定したsystem-images;android-25;google_apis;x86を確認。
よくよく確認すると「installed packages」の中にはない。
>sdkmanager --list
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;28.0.3 | 28.0.3 | Android SDK Build-Tools 28.0.3 | build-tools\28.0.3\
emulator | 30.0.0 | Android Emulator | emulator\
extras;android;m2repository | 47.0.0 | Android Support Repository | extras\android\m2repository\
extras;google;m2repository | 58 | Google Repository | extras\google\m2repository\
patcher;v4 | 1 | SDK Patch Applier v4 | patcher\v4\
platform-tools | 29.0.6 | Android SDK Platform-Tools | platform-tools\
platforms;android-28 | 6 | Android SDK Platform 28 | platforms\android-28\
tools | 26.1.1 | Android SDK Tools 26.1.1 | tools\
Available Packages:
Path | Version| Description
------- | -------| -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
add-ons;addon-google_apis-google-16 | 4 | Google APIs
: :
system-images;android-25;google_apis;x86 | 16 | Google APIs Intel x86 Atom System Image ★avd createで指定したパッケージ
system-images;android-25;google_apis;x86_64 | 16 | Google APIs Intel x86 Atom_64 System Image
: :
system-images;android-R;google_apis;x86_64 | 1 | Google APIs Intel x86 Atom_64 System Image
:
④sdkmanagerでパッケージをインストール
②と同じsdkmanagerのマニュアルにインストール方法が記載。
パッケージをインストールする
sdkmanager packages [options]
>sdkmanager "system-images;android-25;google_apis;x86"
[=======================================] 100% Unzipping... x86/source.propertie
⑤avdmanager createを再実行
エラーにならず、正常終了。
>avdmanager create avd -n test -k "system-images;android-25;google_apis;x86"
Auto-selecting single ABI x86===========] 100% Fetch remote repository...
Do you wish to create a custom hardware profile? [no]
>
⑥sdkmanager --listの再実行
「Installed packages」にsystem-images;android-25;google_apis;x86が増えている。
これより、avdmanager createする際には、事前にsdkmanagerでパッケージのインストールが必要だと分かった。
>sdkmanager --list
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
build-tools;28.0.3 | 28.0.3 | Android SDK Build-Tools 28.0.3 | build-tools\28.0.3\
emulator | 30.0.0 | Android Emulator | emulator\
extras;android;m2repository | 47.0.0 | Android Support Repository | extras\android\m2repository\
extras;google;m2repository | 58 | Google Repository | extras\google\m2repository\
patcher;v4 | 1 | SDK Patch Applier v4 | patcher\v4\
platform-tools | 29.0.6 | Android SDK Platform-Tools | platform-tools\
platforms;android-28 | 6 | Android SDK Platform 28 | platforms\android-28\
system-images;android-25;google_apis;x86 | 16 | Google APIs Intel x86 Atom System Image | system-images\android-25\google_apis\x86\
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tools | 26.1.1 | Android SDK Tools 26.1.1 | tools\
Available Packages:
Path | Version | Description
------- | ------- | -------
add-ons;addon-google_apis-google-15 | 3 | Google APIs
add-ons;addon-google_apis-google-16 | 4 | Google APIs
⑦avdmanager list avdの実行
作成したavdが表示されることを確認。
> avdmanager list avd
Available Android Virtual Devices:
Name: test
Path: C:\Users\xxxx\.android\avd\test.avd
Target: Google APIs (Google Inc.)
Based on: Android 7.1.1 (Nougat) Tag/ABI: google_apis/x86
参考ページ
StackOverflow「How to set system images (path?) when creating an Android AVD?」
https://stackoverflow.com/questions/43275238/how-to-set-system-images-path-when-creating-an-android-avd