LinuxでAndroidのionicをビルドしようとしていますが、このようなエラーが表示されます
[Error: Failed to find 'Android_HOME' environment variable.
Try setting setting it manually.
Failed to find 'Android' command in your 'PATH'.
Try update your 'PATH' to include path to valid SDK directory.]
ERROR building one of the platforms: Error: /home/kumar/myapp/platforms/Android/cordova/build: Command failed with exit code 2
You may not have the required environment or OS to build this project
Error: /home/kumar/myapp/platforms/Android/cordova/build: Command failed with exit code 2
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Process.ChildProcess._handle.onexit (child_process.js:810:5)
そして、私はこれを私のbashrcファイルに追加しました
export ANT_HOME="/usr/bin/ant"
export PATH="$PATH:$ANT_HOME/bin"
export HOME="/home/kumar"
export Android_HOME="$HOME/Android-sdk-linux/tools"
export Android_PLATFORM_TOOLS="$HOME/Android-sdk-linux/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$PATH"
私はパスを与えたと思っていますが、なぜこのエラーが表示されるのか分かりません..助けてください...
Android HomeはSDKのルートフォルダーである必要があります。
export Android_HOME="$HOME/Android-sdk-linux"
EDIT:ターミナルを開き、これらのコマンドを入力します。 (はい、bashrcファイルではなくternimalで)
export Android_HOME=~/Android-sdk-macosx
PATH=$PATH:$Android_HOME/tools
PATH=$PATH:$Android_HOME/platform-tools
次に、同じ端末でAndroid
と入力します。設定すると、この端末からビルドコマンドを使用できるようになります。 (それは一時的な解決策です)
into 〜/ .bash_profile追加:
export Android_HOME="/path/to/Android-sdk-macosx"
export PATH="$Android_HOME/platform-tools:$Android_HOME/tools:$PATH"
その後、ターミナルで実行してすぐに有効にします。
into / etc/sudoers add:(コンソールを使用できます:Sudo visudo
)
Defaults env_keep += "Android_HOME"
構築プロセスはSudo
で開始し、ノードのprocess.env
はそれぞれの変数を取得する必要があるためです。
ケース:SO Windowsを使用して、試してください:
set Android_HOME=C:\\Android-sdk-windows
set PATH=%PATH%;%Android_HOME%\tools;%Android_HOME%\platform-tools
詳細: http://spring.io/guides/gs/Android/
ケース:プラットフォームツールがありません:
cordova platforms list
cordova platforms add <Your_platform, example: Android>
私の場合、AndroidとそのSDKはデフォルトで次の場所にインストールされました:
/root/Android/Sdk
ターミナルを開き、〜/ .bashrcを編集します
Sudo su
vim ~/.bashrc
Android_HOMEをエクスポートし、バイナリを含むフォルダーをPATHに追加します
export Android_HOME=/root/Android/Sdk
PATH=$PATH:$Android_HOME/tools
PATH=$PATH:$Android_HOME/platform-tools
PATHを更新するには
source ~/.bashrc
ionic build Android
がまだ失敗する場合は、sdkバージョンが間違っている可能性があります。正しいバージョンとイメージをインストールするには、コマンドラインからAndroid
を実行します。現在PATHにあるので、どこからでも実行できるはずです。
Android SDKをダウンロードします http://developer.Android.com/sdk/installing/index.html
SDKフォルダーのパスのみをエクスポートします。
export Android_HOME="YOUR_PATH/sdk/"
Sudo ionic run Android
をルートとして実行すると、これらの環境変数が保持されないため、この問題が発生しました。 Sudo -E ionic run Android
を実行して修正しました。
手順は、上記の回答ですでに十分に説明されています。ただし、Android_HOME
およびPATH
を.bashrc
にある.zshrc
または/home/username/
に追加し、ionic
コマンドをSudo
で実行しようとすると、このエラーが再度表示されることがあります。
その理由は、現在ログインしているユーザーではなく、rootユーザーのAndroid_HOME
ファイルで.zshrc
およびPATH
を探す場合があるためです。そのため、rootユーザーの.bashrc
または.zshrc
ファイルに追加しない限り、これを行うべきではありません。
Windows-環境変数を永続的に設定します:
setx Android_HOME "C:\ Program Files\Android\android-sdk"
または
setx Android_HOME "C:\ Program Files(x86)\ Android\android-sdk"
次のようにプロファイルファイルを編集するだけです。
Sudo su
vim ~/.profile
そして、これをファイルの最後に置きます:
export Android_HOME=/home/(user name)/Android/Sdk
export PATH=$PATH:/tools
export PATH=$PATH:/platform-tools
ファイルを保存して閉じて、次を実行します。
cd ~
source .profile
今あなたがするなら:
echo $Android_HOME
次のように表示されます。
/home/(user name)/Android/Sdk
私の場合:AndroidとJavaの正しいパスを入れましたが、それでもエラーが発生します。
問題は、Sudoコマンドを使用してAndroidプラットフォームを追加したことです。Sudo ionic cordova platform Android
。
私の問題を解決するには:まず、コマンドを実行してプラットフォームAndroidを削除しました
Sudo ionic cordova platform rm Android
その後、Sudoionic cordova platform add Android
を使用せずにAndroidプラットフォームを再度追加しますが、権限のエラーが表示されます。
エラー実行コマンドを解決するには
Sudo chmod -R 777 {プロジェクトのパス}
私の場合はSudo chmod -R 777 ~/codebase/IonicProject
その後、コマンドを実行します
イオンコルドバプラットフォームはAndroidを追加します
または
イオンコルドバランAndroid
Android_HOME値を追加するにはpermanently、
gedit ~/.bashrc
次の行を追加します
export Android_HOME=/root/Android/Sdk
PATH=$PATH:$Android_HOME/tools
ファイルを保存すると、Android_HOME値を毎回更新する必要はありません。
素晴らしいチュートリアル: https://www.youtube.com/watch?v=kY22NSBwV_s
Bashコマンド/シンボリックリンクを実行する必要はありません。