web-dev-qa-db-ja.com

Android St​​udioでエミュレーターを実行できません

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

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

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

85
Ted pottel

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

24
tse

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

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

編集を選択

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

次へをクリックします

完了をクリックします

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

19
Harris

これを修正しました。これが他の人に役立つことを願っています。 (Android studio v2の問題)この問題は、アームエミュレーターの問題です。この例では、armeabi-v7a API 16を使用しています

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

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

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

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

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

手順3.変更を登録するには、Android St​​udioを再起動します。 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マネージャーのカーネルファイル)

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

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

11
Asi Mugrabi

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

10
airo

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

Android St​​udioで作業し、すべての統合ツールを実行していたので、古いマネージャー(AVD/SDK)を使用しないのが自然になりました。

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

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

5
Luan

ちょっとあなたがしたのと同じ問題に出くわした、Googleの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 *タイプを自動的に変更します。これは設定管理に対する貧弱な人間のアプローチですが、ARM prev passを使用してARMv7 *システムイメージを構築することはできます。 」

そこで私は戻って、希望するAPIレベルのx86 intel atomバージョンをダウンロードし、エラーなしでエミュレーターを起動することができました。それがあなたにも役立つことを願っています.....

3
Brandon

同じエラーが発生しました。私にとっての解決策は、Android_HOMEパスを変更することでした。まず、Android St​​udioからtools-> Android-> sdk managerを調べました。そのウィンドウで、Android St​​udioがSDKを探すパスを確認できます。 image

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

echo %Android_HOME%

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

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

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

echo %Android_HOME%

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

2
Hector Pasarin

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

2
M Muli

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

0
Lukas Hanacek
  • Android studioを開きます。
  • 設定>システム設定> Android SDKに移動します
  • 「Android SDKロケーション」を取得します。
  • 環境変数Android_SDK_ROOTをこの値に設定します。

それは私のために働いて、私はWindows 10とAndroid studio 2.3.3にいます

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