ゆり&こちょの育児パパブログ

ゆり(8歳)&こちょ(4歳)2人の娘を持つ育児パパブログ

Cordovaアプリをビルド時にAAPT2エラーでハマった(Androidアプリ開発)

そろそろ新しいアプリを作ろうかと思い、これを機にCordova関連のモジュールをバージョンアップ!
Cordova 8.0と、CordovaのAndroidプラットフォームを7.1 で最新環境に変更。
※理由としては、Google Playにアプリ公開時に、今後、Android 8.1(API Level27)以上が求められる様なので。

 

f:id:summerplus64:20180630132707p:plain

 

で、案の定、バージョンアップ後、アプリをビルド時にエラー発生・・・

前回のCordovaバージョンアップの際も、ビルド時にエラーではまり、若干トラウマ気味・・・

f:id:summerplus64:20180630132850p:plain

 

前回は、導入している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について勉強が必要ですね。

 

f:id:summerplus64:20180630134118p:plain

 

後は、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を実行したい場所を値に設定することで、変更できました。
解決方法もしょぼいが、無事ビルドできました。

f:id:summerplus64:20180630134830p:plain

 

少しバージョンは古いですが、Apache Cordova について基礎から学べるので、Cordovaで開発している方にはおススメです。

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

 

 

あぁ、エラー回避で無駄に疲れた。
やっと開発ができる、、、

 

ところ、AAPT2とはいったい・・・
ホント、Cordovaのバージョンアップは怖い。