Android Studioのインストールを完了し、それをテスト実行に使用しようとしました。アプリを実行しようとすると、次のエラーメッセージが表示されます
emulator: ERROR: This AVD's configuration is missing a kernel file!!
emulator: ERROR: ANDROID_SDK_ROOT is undefined
誰かがこれを修正する方法を知っていますか????
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_HOME/system-images/android-<YOUR DESIRED API>/armeabi-v7a
、2:SDKマネージャーを使用して仮想デバイスを再インストールする方法
これを修正しました。これが他の人を助けることを願っています。(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分かかりました)
image.sysdir.1=system-images\android-16\default\armeabi-v7a
image.sysdir.1
アンドロイド-15 \ `システムイメージに対して\ google_apis \ armeabi-v7a`
短い答え:古い学校を使用して同じ画像を作成してみてください<AndroidSDK>\AVD Manager.exe
。
Android Studioで作業し、すべての統合ツールを実行していたため、古いマネージャー(AVD / SDK)を使用しないのは自然なことでした。
私の場合、新しい(統合された)AVD Managerを使用して古いシステムイメージ(テスト済みのAPI 11以下)でデバイスを作成すると、この問題が発生しました。
古い学校のAVD Managerツール(にあり<AndroidSDK>\AVD Manager.exe
ます)を使用してこれらの古いデバイスイメージを作成しようとしたところ、成功しました。
~/Library/Android/sdk/tools/android avd
。
ちょっと、あなたがしたのと同じ問題が発生しました、グーグルの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インテルアトムバージョンをダウンロードし、エラーなしでエミュレーターを起動することができました。それがあなたにも役立つことを願っています...
同じエラーが発生しました。私の解決策は、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. androidスタジオから実行してSDKマネージャー./android.sh
を確認し、実行して壊れたパッケージを見つけるのに役立ちます。
IntelよりもGoogle APIをサポートするシステムエミュレーターイメージをインストールしてみてください。と同じように、別のシステムイメージを実行して問題を解決しました。
Google for Linuxによって提案されたKVMベースの仮想化に関する実験