CordovaのAndroidビルドエラーと環境構築
前提の環境
- Macを新しくして、改めて環境構築時
- Android開発用にAndroid Studioをインストール済み
- 以下2つを環境変数のPATHに追加済
- Android StudioのSDKManagerから、SDK Platformのタブを選択して適当な環境を複数インストール済
ビルドエラーについて
cordovaで開発するときに、Android用のビルドで以下のようなエラーが発生。
Starting 'cordova-with-build'... (省略) Error: Android SDK not found. Make sure that it is installed. If it is not at the default location, set the ANDROID_HOME environment variable. 'cordova-with-build' errored after 5.55 s
これだけ見ると「ANDROID_HOME」を設定すればいいように見えるが環境変数として、「ANDROID_HOME」に「~/Library/Android/sdk」を設定しても同様のエラーとなり解決せず。
確認
cordova requirementsコマンドでみると、以下のようにAndroid targetがnot installedになっている。
本来であれば、ここはAndroid StudioのSDKManagerでインストールした環境が表示されるはず。
$ cordova requirements android Requirements check results for android: Java JDK: installed . Android SDK: installed Android target: not installed Android SDK not found. Make sure that it is installed. If it is not at the default location, set the ANDROID_HOME environment variable. Gradle: not installed Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
対応方法
- Android SDKの下に配置されているtoolsを差し替えました、方法は以下の通り。
- https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
上記からzipをダウンロードして解凍 - 「~/Library/Android/sdk」直下にある、toolsディレクトリを適当な名前にリネームしてBackup
- 解凍したtoolsディレクトリを、「~/Library/Android/sdk」直下に配置
- 念のため、以下のcordovaコマンドを実行
・cordova platform rm android ・cordova platform add android
上記を試してた後に、改めてcordova requirementsコマンドを実行し、targetに正しく値が表示されていることを確認してOK
$ cordova requirements android Requirements check results for android: Java JDK: installed . Android SDK: installed Android target: installed android-21,android-22,android-23,android-24,android-25,android-26,android-27 Gradle: installed