Cordovaアプリをビルド時にAAPT2エラーでハマった(Androidアプリ開発)
そろそろ新しいアプリを作ろうかと思い、これを機にCordova関連のモジュールをバージョンアップ!
Cordova 8.0と、CordovaのAndroidプラットフォームを7.1 で最新環境に変更。
※理由としては、Google Playにアプリ公開時に、今後、Android 8.1(API Level27)以上が求められる様なので。
で、案の定、バージョンアップ後、アプリをビルド時にエラー発生・・・
前回のCordovaバージョンアップの際も、ビルド時にエラーではまり、若干トラウマ気味・・・
前回は、導入しているCordovaのPluginの互換性でエラーになって、
Plugin側のバージョンを微調整しながら解消したけど、
今回は、ちょっと違うようで、、、
Cordovaのデバッグビルドで、「mergeDebugResources」処理時に、
「Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details」
が発生。
なんだ、AAPT2って・・・?
Android Studio 3.0からデフォルトで有効になっている機能の様で、何をしてくれるのかはいまいち分からない。
たしかに、自分の環境はAndroid Stuido 3.0.1なので、これっぽいな。
エラーを辿っていくと、
C:\Users\?P?L\.gradle\caches\transforms-1\files-1.1\play-services-ads-base-15.0.1.aar\e6a0062c8e54fb9e0f4d44ffcba3c374
error : file not found
パス内で日本語が文字化けしているのは、明らかだけど。
Gradleどうしたもんか・・・
とりあえず、AAPT2エラー関連で、Googleで色々見ていると、gradle.propertiesで、Android APIのレベルを強制するというのもあったが、
導入Pluginが、最新のAndroid APIレベルに追従できていなかったら、有効な手段かもしれない。
Gradleについて勉強が必要ですね。
後は、Android Studioの設定で、Gradleの実行場所の変更について情報(日本語を含まないパスでGradleを実行する)があった。
ただ、Android Studio上のGradleの実行場所を変更しても、Cordovaビルド時にGradleの実行場所とは独立している様で、解決に至らず・・・
大したことない事象なのに、情報が無くハマった。
CordovaアプリのGradleの実行場所をどう変更するか?
こんな初歩的な情報がなぜ見つからない!
そんなわけで、自分で頑張った結果、自分のCordovaアプリ内にある、
C:\【Cordovaアプリ名】\platforms\android\gradle\wrapper\
内の、gradle-wrapper.propertiesに書かれている。
※gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
GRADLE_USER_HOMEを環境変数に追加して、Gradleを実行したい場所を値に設定することで、変更できました。
解決方法もしょぼいが、無事ビルドできました。
少しバージョンは古いですが、Apache Cordova について基礎から学べるので、Cordovaで開発している方にはおススメです。
[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)
- 作者: 久保田光則,アシアル株式会社
- 出版社/メーカー: 技術評論社
- 発売日: 2013/12/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
あぁ、エラー回避で無駄に疲れた。
やっと開発ができる、、、
ところ、AAPT2とはいったい・・・
ホント、Cordovaのバージョンアップは怖い。