Cordova Androidでエミュレータにビルドできない件

こんばんわ!!cowboyです☆

今回はプログラミングのcordovaについて。

今年の4月にAndroid SDK Toolsのバージョンが25.3.1になってから、Googleが "android avd"と"android sdk"のコマンドを無効にしました。
さらにスタンドアローンのAndroid SDK manager、AVD managerがなくなり、Android Studioでの管理となりました。つまりAndroid Studioのインストールは必須です。
フォルダ構成等にも変更があったようで、cordovaから直接Androidエミュレータへのビルドができなくなっていました。


一応、cordova-androidプロジェクトフォルダ内のgradleを読み込んでAndroid Studioからエミュレータにビルドしたり、Androidエミュレータを既に起動している状態から"cordova emulate android"コマンド実行でエミュレータにビルドできるのですが、いちいちめんどくさかった。
海外の掲示板とか覗いても同じことで多くの人が悩んでいて、解決策としては、バージョンの古いAndroid SDK Toolsに戻す方法がベストアンサーとなっていました。


もちろんcordovaサイドもバージョンアップしてそれらの変更に対応していると公式でアナウンスされているのですが、なぜか"cordova emulate android"のコマンドでエラーを吐いてしまう。
これは僕の開発環境の問題かと思っていました(海外の掲示板によると全く同じ症状の人がたくさんいたけれども)。

そんな中、5/4にcordovaのメジャーアップデータであるcordova7.0が公開されました。それとともにcordova androidが6.2.3に更新されました。
そのアナウンスの中の一文に驚愕しました。以下引用です(リンク)。

"We are happy to announce that Cordova Android 6.2.3 has been released!
This patch release actually adds support for the Android SDK Tools v26 and newer.
Unfortunately, we forgot to include these changes in the 6.2.2 release.

Cordova Android 6.2.3をリリースできて嬉しいよ!
このパッチはAndroid SDK Tools v26以上を本当にサポートするようになったよ。
残念なことに、6.2.2リリースの際にはこれらの変更を含めるのを忘れちゃったんだ。"



・・・マジか!!アナウンスではビシッと対応をうたっていたのに、まさかのcordova側の対応忘れとは。。。(笑)

というわけで今あるプロジェクトを以下のコマンドでcordova androidを更新しましょう(@6.2.3をわざわざ付けないと何故か6.2.2が適応されてしまう)。

cordova platform update android@6.2.3
(新しくプロジェクトを作る場合はcordova platform add android@6.2.3)

しかしここでまた1つ問題が。
MacOS Sierraだとcordova emulate androidを行うときちんとAndroidエミュレータが立ち上がり、アプリがビルドされたのですが、Windows10だと次のようなエラーが出ました。

"Gradle: not installed
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio"


どうやらAndroid SDK Tools v25.3.1以降ではGradleのパスが変わっているようです。
Macではなぜか特に何もしなくても大丈夫でした。とりあえずWindows10でパスを追加しましょう。

[コントロールパネル] - [システム] - [システムの詳細設定]メニューで表示される[システムのプロパティ]ダイアログボックスの[詳細設定]タブを開く。
環境変数をクリックすると、環境変数のダイアログボックスが表示されるので、[(ユーザーアカウント)のユーザー環境変数]内の[新規]ボタンをクリックして以下の内容を登録する。
(画像ではパスは既に追加済みです。)
cordova環境変数



変数名:GRADLE_HOME
変数値:Android Studioまでのパス¥gradle

Android Studioまでのパスは各自書き換えて下さい。
コマンドプロントで"gradle -version"を実行してgradleのバージョンが表示されればOKです。

これでWindows10でも"cordova emulate android"コマンドでAndroidエミュレータに直接ビルドできるはずです。
やっぱり新しい機能が追加されていたり、バグやセキュリティ面を考えると最新版を使っている方が安心できます(^^)
もちろん、最新バージョンで不具合が増えていることもありますが(笑)

以上cowboyでした☆うぇいうぇいうぇい!!

記事が良かったなら↓をクリックして応援願いますm(_ _)m