※この記事はエラー内容を全て記述しています。したがって、エラーが出るべくして起こった箇所もあるため、一度全てに目を通してから読んだ方が時間のロスが少なくて済みます。私はNativescriptの開発中にエラーが出てきましたが、Android-sdkやパス、APIバージョンの問題なのでJavaやKotlinでも全く問題ないです。

 

Nativescriptを色々といじっていたらandroidが動かなくなってしまいました

通常通り起動すると、よくあるエラーが出てきています
エラーの内容はANDROID_HOMEというディレクトリはありません、ということですね
パスが間違っている、もしくはandroid-sdkがないのどちらかです

$ tns run android
The ANDROID_HOME environment variable is not set or it points to a non-existent directory. You will not be able to perform any build-related operations for Android.

ちなみにパスは以下のように設定してありますが、

export ANDROID_HOME=“/usr/local/share/android-sdk”
export PATH=“${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools”

android-sdkが怪しいので、念のためもう一回sdkをいれときます

$ brew cask reinstall android-sdk

ターミナルを再起動してもう一回実行したところ

$ tns run android
Cannot find a compatible Android SDK for compilation. To be able to build for Android, install Android SDK 22 or later.

新しいエラーが出てきたので、一歩進みました!

調べてみると、Androidのモジュールが足りていないっぽいのでAndroid studioから関連モジュールなどをインストール

まずは開く

Configureから SDK Managerを開く

右上のeditからパスを指定

パスを指定したらNextボタンを押してインストール実行

完了後再度実行してみたところ

$ tns run android
Cannot find a compatible Android SDK for compilation. To be able to build for Android, install Android SDK 22 or later.

エラー内容に変化が現れなかったので、sdkのバージョンを色々といれてみます
※先ほどインストールしたAPIは27だけでした

5分ほどでインストール完了!

再び実行してみると、

$ tns run android
Searching for devices...
Starting Android emulator with image Nexus_5_API_25
Cannot find connected devices.
Emulator start failed with: Cannot run your app in the native emulator. Increase the timeout of the operation with the --timeout option or try to restart your adb server with 'adb kill-server' command. Alternatively, run the Android Virtual Device manager and increase the allocated RAM for the virtual device.
To list currently connected devices and verify that the specified identifier exists, run 'tns device'.
To list available emulator images, run 'tns device <Platform> --available-devices'.

 

動きました!!!!
私のパソコンは5,6年使っていて重いのでエミュレーターが動いていませんが、Nativescriptを動かすことはできました!

 

問題点

 

今回の問題点は2つあると思います
1つ目は、android-sdkがうまく接続されていなかったこと

homebrewでいれていたので、updateした時かいつかはわかりませんがパスがおかしくなっていた、バージョンが悪かった、そもそも削除してしまっていた、などの理由が考えられます

これらが原因でANDROID_HOMEが見つかりません!というエラーが出ていたのだと思います

2つ目は、APIのバージョンを「間違えていた」ことが問題でした。
現在使用しているパソコンではAPIバージョンが25のネクサスを使用しています

最初にいれたバージョンは27だったので、それが原因でした。。。

今回の記事は今後同じエラーが出てきたときに簡単に対処できるようにと思って書いた記事なので、長くて要点がわかりづらいと思い方も多いかと思いますが、順を追っていけば比較的解決に近くのではないかと思います

もし間違え等ございましたら、コメントください

参考にした記事

Having ANOTHER Error (follow up on #32139) when trying to brew cask install android-sdk on mac os x #32157

Set ANDROID_HOME environment variable in mac
NativeScript Advanced Setup: macOS

patrickhammond/android_instructions.md

Cannot find a compatible Android SDK for compilation when running `tns platform add android`

Cannot find a compatible Android SDK for compilation. To be able to build for Android, install Android SDK 22 or later #3825

Cannot find a compatible Android SDK for compilation when running `tns platform add android`

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA