web-dev-qa-db-ja.com

PANIC:AVDシステムパスが壊れています。 Android_SDK_ROOTの値を確認してください

端末でcordova run Androidを入力した後、私はこのエラーを得ています:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your Android_SDK_ROOT value [/Users/username/Library/Android/sdk]!

これはエクスポート後に起こります:

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'

エクスポートする前に私は得た:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define Android_SDK_ROOT

私が間違っているところで任意のアイデア?私はこれがSDKルートであると確信しています、なぜ私は壊れたAVDシステムパスを取得しているのですか?

91
d.boyd

AVDやSDKを別のディレクトリに移動したり、古いSDKを新しいものと交換したり、何らかの理由でSDKを破損させたりすると、さまざまな問題が発生する可能性があります。

以下に、私が知っている可能性のあるすべての問題について説明し、それらを解決するためのいくつかの方法を紹介します。

もちろん、私はあなたがAVDを作成したと仮定します、そしてそれはC:\Users\<user_name>\.Android\avd(Windows)または~/.Android/avd(Linux/MacOS)にあります。

.Androidを別の場所に移動した場合は、Android_SDK_HOME環境変数を.Androidを含む親ディレクトリのパスに設定し、AVD Managerが仮想デバイスを正しく見つけたことを確認してください。

<user_home>/.Android/avd/<avd_name>.iniのパスも確認してください


不完全または破損したSDKの構造

PANIC: Cannot find AVD system path. Please define Android_SDK_ROOT
PANIC: Broken AVD system path. Check your Android_SDK_ROOT value

これら2つのエラーは、エミュレータがSDKを見つけられない場合、またはSDKが壊れている場合に発生します。

ですので、まず最初にAndroid_SDK_ROOT変数を削除することをお勧めします。エミュレータがSDKディレクトリの外側にある場合にのみ必要です。しかし、一般的に、あなたのエミュレータはSDKディレクトリの中に留まります。そしてこの場合、それは自動的にSDKの場所を検出しなければなりません。そうでない場合は、SDKのファイルツリーが間違っている可能性があります。以下を行ってください。

  1. SDKディレクトリに、少なくともemulatorplatformsplatform-toolssystem-imagesの4つのディレクトリがあることを確認します。 非常に重要です!これらのディレクトリは存在している必要があります。存在しない場合は、空のディレクトリを作成してください。

  2. <user_home>/.Android/avd/<avd_name>に移動してconfig.iniを開きます。 image.sysdir.1プロパティを見つけます。実際のシステムイメージを含むSDKディレクトリ内のディレクトリを指します。このディレクトリが存在し、build.propsystem.imgなどのファイルが含まれていることを確認してください。存在しない場合は、SDKマネージャを開いてAVDに必要なシステムイメージをダウンロードする必要があります。 ).

すべてが正しく設定されていれば、Android_SDK_ROOTに関するこれらのエラーは解決したはずです。そうでない場合は、Android_SDK_ROOT変数を設定しようとします。


必要なパッケージとHAXMがインストールされていません

あなたが直面するかもしれない次の問題は、エミュレータが起動し始めますが、すぐにハングアップするか、または終了するということです。おそらく、必要なパッケージがすべてインストールされていないということです。

別の考えられるエラーは次のとおりです。

ADBバイナリを自動的に検出できませんでした。拡張設定ページにADBへのカスタムパスが追加されるまでは、エミュレータ機能の中には機能しないものがあります。

したがって、AVDを正常に起動するには、少なくともこれらのパッケージがインストールされていることを確認する必要があります。

emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)

そして先に述べたように、あなたはAVDが使っているシステムイメージをインストールしなければなりません、例えばsystem-images;Android-25;google_apis;x86

SDKの最新バージョンにはスタンドアロンのSDK Manager.exeはありません。その代わりに、Android Studioかtools\bin\sdkmanager.bat(Linux/MacOSにはおそらくshファイルがあります)のどちらかを使う必要があります。

利用可能なすべてのパッケージを一覧表示するには、sdkmanager --listまたはsdkmanager --list --verboseを使用してください。

パッケージをインストールするにはsdkmanager <package1> <package2> ...を使います。

手動で HAXM をシステムにインストールすることもお勧めします。


Qcow2-ファイルは誤った/存在しないベースイメージを参照しています

私が言及する最後の問題は、AVDまたはSDKをあるコンピュータまたはディレクトリから別のコンピュータまたはディレクトリに移動しようとしているときに発生します。この場合、あなたはそのようなエラーを受けるかもしれません:

qemu-system-i386.exe:-drive if = none、overlap-check = none、cache =危険、index = 0、id = system、file = C:\Users\<old_user_name>\.Android\avd\<avd_name>です。

avd\system.img.qcow2、読み取り専用:バッキングファイルを開けませんでした: '<old_sdk_dir>\system-images\Android-22\google_apis\x86\system.img'を開けませんでした:引数が無効です

それを修正するには2つの方法があります。

  1. AVDに含まれているデータを気にしないのであれば、AVDディレクトリからすべてのqcow2ファイルを削除してください(例:<user_home>/.Android/avd/<avd_name>から)。この場合は、ハードリセット後のように、Androidのクリーンバージョンを入手できます。

  2. エミュレータ上のデータが重要な場合は、任意のHEXエディタを使用してすべてのqcow2ファイルを1つずつ開きます( HxD を使用します)。ベースのimgファイルを作成し、Overwriteモードでファイルサイズを維持するために正しいファイルに変更します。次にパスを選択し、その長さを16進数で取得します(例:2F)。 2FはASCIIスラッシュ/を表します。それを13の位置に置きます。

Edit Android qcow2 files using HxD HEX editor

シモンズ:確かではありませんが、 qemu-img のように異なるベースイメージを設定できるようなユーティリティがおそらくいくつかあります。私にとっては、バイナリを手動で編集する方が簡単です。


これで、おそらくAndroid仮想デバイスを正常に起動できるでしょう。そうだといい :)

105
Oleg Cherr

Macの場合:brewとAndroid Studioを使用してAndroid-sdkをインストールしました。どういうわけか、2つのインストールがあることはこの問題を引き起こしていました。 brew cask uninstall Android-sdkを使用してsdkのbrewインストールをアンインストールし、envに次の変数を追加したとき。出来た。

export Android_HOME=/Users/<Username>/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
97
EFreak

それはあなたのツールへの道が間違っていることを意味します。これは、brewを使ったMac上での様子です。バージョンを気にする.

export Android_SDK_ROOT='/usr/local/Cellar/Android-sdk/24.4.1_1'

あなたの場合、これを実行する必要があるように見えます。

export Android_SDK_ROOT='/Users/username/Library/Android/sdk'
14
TechnoTim

これでmacOSの問題は解決します。

pico ~/.bash_profile

export Android_HOME=/Users/$USER/Library/Android/sdk
export Android_SDK_HOME=/Users/$USER/Library/Android/sdk
export Android_AVD_HOME=/Users/$USER/.Android/avd
export PATH=${PATH}:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_AVD_HOME

source ~/.bash_profile
13
cuasijoe

私は私のWindows10で同じ問題を抱えていた、
以下の手順で問題を解決しました。
Android Studioを開く
- ツール
- SDKマネージャ
- Android SDKの場所をコピーする
Android SDKの場所
システム環境変数を設定します
Android_HOMEおよびAndroid_SDK_ROOT
システム環境変数

5
psaren
  • Platfomsディレクトリが/ usr/local/share/Android-sdkにありませんでした。

  • 私は問題を修正したplatformという名前の空のディレクトリを作成しました。

4
Olivier Maina

[OK]を私はcordovaからAndroidを実行することができます、私はにAndroid_HOMEを変更し、

export Android_HOME=/usr/local/opt/Android-sdk
4
d.boyd

AVD Emulatorを追加する必要があります。この場所に行きます:

C:\Users\%username%\AppData\Local\Android\sdk\

aVD Managerを起動し、2番目のタブ(デバイス定義)で「createAVD」ボタンをクリックします。

3
Blagojce

Oleg Cherrsの答えが私を解決策に導いた。彼が述べたように

/.Android/avd/に移動してconfig.iniを開きます。 image.sysdir.1プロパティを探します。 system> imagesを含むSDK内のディレクトリを指します。このディレクトリが存在し、build.prop、> system.imgなどのファイルが含まれていることを確認します。存在しない場合は、SDKマネージャを開き、AVDに必要なシステムイメージをダウンロードする必要があります(下記参照)。

対応するエミュレータ* .iniファイルがavdディレクトリに見つかりました。そこで "image.sysdir.1"エントリを修正しました。私は相対パスを絶対パスに置き換えました(前にAndroid_SDK_ROOTを追加します)。その後、エミュレータは期待通りコマンドラインから起動しました。

3
Xerox23

@EFreakと同じように私は自作(Mac用のパッケージマネージャ)でAndroid SDKをインストールしました。私はネイティブスクリプトのチュートリアルに従っていたので、これを行う必要がありました。あなたが私のようなAndroid-sdkバージョンの上にbrewバージョンを使うつもりならこの答えを使ってください(これはあなたがnativescripts tns run Android apiを使うことを可能にするでしょう)。

基本的には、Android StudioでAndroid SDKの場所を変更するだけです。まずAndroidスタジオでプロジェクトを開きます。次に、このボタンをクリックしてSDKマネージャを開きます。

Android sdk manager button location

次にAndroid SDKマネージャのデフォルト設定が表示されたら、Android SDKの場所の横にある[編集]をクリックする必要があります。

enter image description here

次に、あなたは実際にsdkコンポーネントのセットアップ画面でsdkの場所を更新する必要があります私のbrew Android-sdkは/usr/local/share/Android-sdkにありました。

enter image description here

それでは、どんなパッケージでもインストールしてウィザードを終了してください。この段階でデバイスエミュレータを削除して再作成する必要がありましたが、その後はうまくいったようです。

3
John

今日その問題に遭遇し、それを解決することができました。

エミュレータ:[140735565005632]:エラー:Android/android-emu/Android/qt/qt_setup.cpp:28:/ユーザ/ your_user_name /ライブラリ/ Android/sdk/emulator/lib64/qt/libにQtライブラリが見つかりません

15:08エミュレータ: '/ Users/your_user_name/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64'を起動できませんでした。このようなファイルまたはディレクトリはありません

解決策はとても簡単でした。 Android Studio => tools => Android => SDKマネージャ=> SDK tools => Android Emulator => Applyの順に選択してAndroidエミュレータをインストールしてください。

私はmacOS High SierraでMacBook Proを使っていますが、あなたのマシンはこの問題とは無関係だと思います。 Android Studio 3.0.1を使用して、少なくとも私にとっては初めてAndroid Studioインストールマネージャを実行するとき、エミュレータは明らかにインストールされていません。

また、あなたのパスがあなたの.bashrcまたは.zshrcで次のように定義されていることを確認してください。

export Android_HOME=/Users/your_user_name/Library/Android/sdk
export Android_SDK_ROOT=$Android_HOME
export PATH=$PATH:$Android_HOME/emulator
export PATH=$PATH:$Android_HOME/tools
export PATH=$PATH:$Android_HOME/platform-tools
2
IsNotDefined

私の場合は、Android_HOMEとAndroid_SDK_ROOTが異なっていたために壊れていたので、Android_HOMEをAndroid_SDK_ROOTと同じになるように設定してから動作し始めました。

2
jc12

AVDで使用されているシステムイメージが$Android_SDK_ROOT/system-images/の下にダウンロードされているか確認してください

2
aleung

この問題を解決するには、SDK Manager.exeを使用して、不足しているシステムイメージを含むパッケージをインストールする必要がありました(「C:¥Program Files(x86)¥Android¥android-sdk」にあります)。必要なシステムイメージ( "Android-23")が "C:\ Program Files(x86)\ Android\android-sdk\system-images"にないことに気付きました。

SDK Manager.exeを実行して適切なパッケージをインストールした後、私はAndroid Studioでエミュレータを実行することができました。

これは私のために働いた解決策です:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/Android/en/creating_an_Android_emulator.html

1
Glauber

NativeScript

NativeScriptを介したAndroidエミュレーターの起動に問題がある場合は、env vars Android_HOMEおよびAndroid_SDK_ROOTがオーバーライドされている可能性があります。

自分で問題を作成する方法は、Android St​​udioをインストールして別のエミュレーターを生成することでした。これは、自家製のAndroid sdkを既にインストールした後にこれを行いました。

したがって、NativeScriptのインストール中に、HomeBrewを介してAndroid sdkのインストールを選択した場合、NativeScriptは上記を次のように設定します。

Android_HOME=/usr/local/share/Android-sdk
Android_SDK_ROOT=/usr/local/share/Android-sdk

その後Android St​​udioをインストールすると、これらの値が次のように上書きされます。

Android_HOME=/Users/[User]/Library/Android/sdk
Android_SDK_ROOT=/Users/[User]/Library/Android/sdk

したがって、当然、Android studioとAndroid SDKのNativeScript/Brewインストールとの競合があります。どちらかを削除するか、env変数に正しいパスが含まれていることを確認すると、エミュレータが起動します。

1
Jamie Armour

次のパス変数を設定した後に消えてしまうという同じ問題がありました注意AVD Homeのパスは他の3つとは異なります

enter image description here

1
Hitesh Sahu

以下の手順に従って問題を解決してください。

1。

export Android_HOME=/usr/local/Cellar/Android-sdk/24.4.1
export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools:$Android_HOME/bin

2。

Go to Android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3。

Go to Android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator
1
Gampesh

他のGoogledの "ソリューション"を試してみると、のみWindowsでAndroid_SDK_ROOT環境変数を設定し、さらに追加してAndroid_HOMEとAndroid_SDK_HOME変数を削除することはXerox23の答えでした - Android_SDK_ROOTの値をimage.sysdir.1プロパティにハードコードするためにAVDのconfig.iniを編集することでした。

これは、Android Studio 3.0.1とエミュレータ26.1.4を使用し、Android Studio内からAVD Managerから仮想デバイスを起動していました。

0
AndrWeisR

エラーは実際に異なります。 -verboseオプションを指定して./emulatorを実行すると役立ちます。実際のエラーが表示されます。

0
deathemperor

Windowsマシンの場合:多くの設定パスを試した後、パスなどを削除します。最後にうまくいくのは、フォルダC:\Users\johndoe\.Androidを見つけてそれを削除することです。その後、あなたはあなたのAndroid Studioを昼食することができます、それはあなたに新しいAVDをダウンロードしてインストールするように頼むでしょう、そしてそれは新しい新鮮なフォルダとファイルを上書きしそして作成するでしょう。これで問題は解決します。

0
Delino

私はちょうどMacで同じ問題を抱えていて、これが私がしたことです:

  1. BrewでインストールしたAndroid-sdkを削除しました
  2. Android_HOME変数をAndroid_SDK_ROOT =/Users/username/Library/Android/sdkと同じに設定しました。
0
allister

私は初期の頃からReact Nativeをやっていたのでこの問題に遭遇しました。 Googleはコマンドラインツールを廃止し、Androidスタジオを主張しました。私にとっての解決策はコマンドラインツールを削除することでした

rm -rf /usr/local/Cellar/Android-sdk

rm /usr/local/bin/Android

指示に従ってASインストールSDK v6を起動します https://facebook.github.io/react-native/docs/getting-started.html#1-install-Android-studio

新しいAVDを作るとエラーなしで起動します

0
Harry Moreno