Android studioのインストールを完了し、テスト実行のために試してみました。アプリを実行しようとすると、次のエラーメッセージが表示されます
emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: Android_SDK_ROOT is undefined
誰もこれを修正する方法を知っていますか????
実際にシステムイメージがない可能性があります。 $Android_HOME/system-images/Android-<YOUR DESIRED API>/armeabi-v7a
が存在し、空でないことを再確認してください。本当に見つからない場合-SDKマネージャーでインストール/再インストールします。
ツールに移動| Android | AVDマネージャー
一番右(エラーメッセージがある場所)の[アクション]列の下にある矢印をクリックします。
編集を選択
デフォルトの選択のままにします(私にとっては、MNC x86 Android M)
次へをクリックします
完了をクリックします
AVDが保存され、最後の列からエラーがなくなりました。そして、エミュレータは現在正常に動作しています。
これを修正しました。これが他の人に役立つことを願っています。 (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 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マネージャーのカーネルファイル)
に
\path-to-sdk\add-ons\addon-google_apis-google-16\images\armeabi-v7a\
そして、それがカーネルファイルの欠落でした。エミュレータを実行できます。 (Android Studioを閉じて、再度開く必要があります)x86と比較して10倍遅いので、エミュレータに少し時間を与えます。 (私の開始には約5分かかりました)
「C:\ Program Files\Android\android-sdk\AVD Manager.exe」を実行し、壊れたデバイスを修復することで修正しました。
簡単な答え:古い学校<AndroidSDK>\AVD Manager.exe
を使用して同じ画像を作成してみてください。
Android Studioで作業し、すべての統合ツールを実行していたので、古いマネージャー(AVD/SDK)を使用しないのが自然になりました。
私の場合、新しい(統合された)AVDマネージャーを使用して古いシステムイメージ(テスト済みのAPI 11以下)でデバイスを作成すると、この問題が発生しました。
古い学校のAVD Managerツール(<AndroidSDK>\AVD Manager.exe
にあります)を使用してこれらの古いデバイスイメージを作成しようとすると、成功しました。
ちょっとあなたがしたのと同じ問題に出くわした、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バージョンをダウンロードし、エラーなしでエミュレーターを起動することができました。それがあなたにも役立つことを願っています.....
同じエラーが発生しました。私にとっての解決策は、Android_HOMEパスを変更することでした。まず、Android Studioからtools-> Android-> sdk managerを調べました。そのウィンドウで、Android StudioがSDKを探すパスを確認できます。 image
次に、Windows CMDシェルを開いて実行しました:
echo %Android_HOME%
ただし、パスは最初のステップのAndroid STUDIO CONFIGURATIONのものとは異なりました。
解決策は、ユーザー環境Android_HOMEを最初のステップの1つに変更することでした。 image
最後にcmdシェルを閉じ、別のcmdシェルを開いて実行しました:
echo %Android_HOME%
パスが更新され、エミュレータを完全に実行できました。
通常、エラーは、開発対象のアプリのタイプに適さないAVDエミュレーターが原因で発生します。たとえば、ウェアラブル用のアプリを開発しているが、電話エミュレーターを使用して実行しようとしている場合。
私の場合(Windows 10)理由は、Android sdkをデフォルト以外のフォルダーにあえて解凍したからです。デフォルトのc:/ Users/[username]/AppData/Local/Android/Sdkに移動し、Android Studioおよびシステム変数のパスを変更すると、機能し始めました。
それは私のために働いて、私はWindows 10とAndroid studio 2.3.3にいます