Android Studioでエミュレーターを実行できない


96

Android Studioのインストールを完了し、それをテスト実行に使用しようとしました。アプリを実行しようとすると、次のエラーメッセージが表示されます

emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined

誰かがこれを修正する方法を知っていますか????


1
この回答をチェックしてくださいstackoverflow.com/questions/9712605/...
Psypher

@テッドポッテル、以下の答えのどれかがあなたの質問に答えましたか?その場合は、横にあるチェックマークをクリックしてください。
2016年

回答:


27

システムイメージが実際にない可能性があります。$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a存在し、空でないことを再確認してください。それらが本当に見つからない場合-SDKマネージャーを使用してインストール/再インストールします。


2
2つの問題があります:1:見つかりません$ANDROID_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a、2:SDKマネージャーを使用して仮想デバイスを再インストールする方法
Musa Haidari

しかし、あなたの答えを読んで、私は回避策を講じることができました。それは新しい仮想デバイスを作成することであり、問​​題は新しい仮想デバイスでは発生しませんでした
Musa Haidari

4
SDK Manager内で、[Show Package Details]をチェックして、インストールされているシステムイメージを確認できるようにします。インストールされていない場合は、インストールします
Martyn Davis

21

ツールに移動| Android | AVDマネージャー

右端(エラーメッセージがある場所)の[アクション]列の下の矢印をクリックします。

編集を選択

デフォルトの選択のままにします(私にとっては、MNC x86 Android M)

次へをクリック

完了をクリックします

AVDが保存され、エラーは最後の列からなくなりました。エミュレーターは正常に動作します。


15

これを修正しました。これが他の人を助けることを願っています。(Android Studio v2と同様の問題)この問題は、armエミュレーターに関するものです。この例では、armeabi-v7a API 16を使用しています。

修正は3つのステップです。

手順1:SDKマネージャーを開き、ARM EABI v7aシステムイメージがインストールされていることを確認します

ステップ2.これは、sdkの場所をシステム変数に追加する明らかなケースです。

デスクトップの「このPC」アイコンを右クリックして、

Properties -> Advanced system settings -> Environment Variables... 次に、変数名を使用して、sdkへのパスをシステム変数セクションの新規として追加します ANDROID_SDK_ROOT

ステップ3. Android Studioを再起動して変更を登録します。ANDROID_SDK_ROOT未定義の問題を修正した後、SDKマネージャーがカーネルファイルをインストールしたことが確認できても、エミュレーターはカーネルファイルを見つけることができません。

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

その理由は、SDKマネージャーがカーネルファイルをインストールする場所と、エミュレーターがカーネルファイルを探している場所が混同しているためです。

エミュレータのconfig.ini(Android Studio-> AVD Mananger-> "Show On Disk")を開くと、次の行が表示されます。

image.sysdir.1=add-ons\addon-google_apis-google-16\images\armeabi-v7a\

(つまり、\ path-to-sdk \ add-ons \ addon -....)

コピーしたconfig.iniファイルのこの値を変更する代わりに

path-to-sdk\sdk\system-images\android-16\default\armeabi-v7a\kernel-qemu

(インストールされているフォルダーsdk managerのカーネルファイル)

\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\

そして、それは欠けているカーネルファイルでした。エミュレータを実行できます。(Android Studioを閉じて再度開く必要があります)x86に比べて10倍遅いので、エミュレータに少し時間を与えます。(鉱山は開始するのに約5分かかりました)


ええと、「エミュレータのconfig.ini」はどこにありますか?
2016

Android Studio-> AVD Mananger-> "Show On Disk"。答えを編集します。
Asi Mugrabi 2016

これは実際に私のためにトリックをした答えです、私の場合、これは私の編集された行image.sysdir.1=system-images\android-16\default\armeabi-v7a
でした

これは、Nexus 4エミュレーターにとって私にとってはトリックでした。更新しなければならなかったimage.sysdir.1アンドロイド-15 \ `システムイメージに対して\ google_apis \ armeabi-v7a`
小枝

10

"C:\ Program Files \ Android \ android-sdk \ AVD Manager.exe"を実行して壊れたデバイスを修復することで修正しました。


5

短い答え:古い学校を使用して同じ画像を作成してみてください<AndroidSDK>\AVD Manager.exe

Android Studioで作業し、すべての統合ツールを実行していたため、古いマネージャー(AVD / SDK)を使用しないのは自然なことでした。

私の場合、新しい(統合された)AVD Managerを使用して古いシステムイメージ(テスト済みのAPI 11以下)でデバイスを作成すると、この問題が発生しました。

古い学校のAVD Managerツール(にあり<AndroidSDK>\AVD Manager.exeます)を使用してこれらの古いデバイスイメージを作成しようとしたところ、成功しました。


2
提案をありがとう-スタンドアロンツールは古いプラットフォーム用に設定する方法を知っているようです。OS X / macOSの場合:~/Library/Android/sdk/tools/android avd
ニューラルマー

4

ちょっと、あなたがしたのと同じ問題が発生しました、グーグルの3番目のリンクは、エラーをスローするコードのこのビットに連れて行ってくれました、

if (kernelFile == NULL) {
        kernelFile = avdInfo_getKernelPath(avd);
        if (kernelFile == NULL) {
            derror( "This AVD's configuration is missing a kernel file!!" );
            const char* sdkRootDir = getenv("ANDROID_SDK_ROOT");
            if (sdkRootDir) {
                derror( "ANDROID_SDK_ROOT is defined (%s) but cannot find kernel file in "
                        "%s" PATH_SEP "system-images" PATH_SEP
                        " sub directories", sdkRootDir, sdkRootDir);
            } else {
                derror( "ANDROID_SDK_ROOT is undefined");
            }
            exit(2);

その人が書いたもの:

"/ *カーネルイメージ名が" -armv7 "で終わる場合は、cpuタイプを自動的に変更します。これは、構成管理への*貧弱なアプローチですが、dex preopt passを使用してARMv7システムイメージのビルドを通過できます。 」

そのため、戻って目的のAPIレベルのx86インテルアトムバージョンをダウンロードし、エラーなしでエミュレーターを起動することができました。それがあなたにも役立つことを願っています...


2

通常、エラーは、開発しているアプリのタイプに適していないAVDエミュレーターが原因で発生します。たとえば、ウェアラブル用のアプリを開発しているが、電話エミュレーターを使用してアプリを実行しようとしている場合。


2

同じエラーが発生しました。私の解決策は、ANDROID_HOMEパスを変更することでした。まず、Android Studioのtools-> android-> sdk managerを調べました。そのウィンドウで、Android StudioがSDKを探すパスを確認できます。画像を

次に、Windows CMDシェルを開いて実行しました。

echo %ANDROID_HOME%

しかし、パスは最初のステップのANDROID STUDIO CONFIGURATIONのパスとは異なりました。

解決策は、ユーザー環境ANDROID_HOMEを最初のステップの1つに変更することでした。 画像

最後にcmdシェルを閉じ、別のcmdシェルを開いて実行しました。

echo %ANDROID_HOME%

パスが更新され、エミュレータを完全に実行できました。


1

私の場合(Windows 10)の理由は、あえてAndroid SDKをデフォルト以外のフォルダーに解凍することでした。デフォルトのc:/ Users / [username] / AppData / Local / Android / Sdkに移動して、Android Studioとシステム変数のパスを変更すると、機能し始めました。


1
  • Androidスタジオを開きます。
  • [設定]> [システム設定]> [Android SDK]に移動します
  • 「Android SDKの場所」を取得します。
  • 環境変数ANDROID_SDK_ROOTをこの値に設定します。

それは私のために働き、私はWindows 10とAndroidスタジオ2.3.3を使っています


1
  1. 「システム環境変数の編集」に進みます。
  2. [新規ボタン]をクリックして、変数名に「ANDROID_SDK_ROOT」と入力し、変数値にandroid sdkのフルパスを入力します。[OK]をクリックして閉じます。
  3. AVDを更新します。
  4. これでエラーが解決します。

-1

この問題を解決するために従うべき一般的なアプローチ。

1. androidスタジオから実行してSDKマネージャー./android.shを確認し、実行して壊れたパッケージを見つけるのに役立ちます。

  1. IntelよりもGoogle APIをサポートするシステムエミュレーターイメージをインストールしてみてください。と同じように、別のシステムイメージを実行して問題を解決しました。

  2. Google for Linuxによって提案されたKVMベースの仮想化に関する実験

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.