Cordova Android 7.0のアプリをビルド時にエラーが発生する様になってしまった
ここ最近作るアプリは、Cordova Android 7.1で開発していたので、気が付かなかった。
(むしろ、知らないままの方が良かったかも・・・)
以前作った、Cordova Android 7.0のアプリを少し改修したので、ビルドしてテストしようとしたら、ビルド時に、突如エラーが発生。
大した改修もしていないのに・・・ハマりたくない!
Cordovaについて基本から学びたい方はこちらがおススメ★
[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)
- 作者: 久保田光則,アシアル株式会社
- 出版社/メーカー: 技術評論社
- 発売日: 2013/12/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
さて、今回のエラー内容です。
〇 エラー内容
* What went wrong: Execution failed for task ':app:transformDexWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.pro cess.ProcessException: java.util.concurrent.ExecutionException: com.android.dex. DexException: Multiple dex files define Landroid/support/v4/accessibilityservice /AccessibilityServiceInfoCompat; * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. * Get more help at https://help.gradle.org BUILD FAILED in 2m 54s (node:9256) [DEP0018] DeprecationWarning: Unhandled promise rejections are depre cated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
私の解釈力では、、、
「transformDexWithDexForRelease」でエラーが発生した以外は、意味不明ですw
Cordovaを使ってアプリを開発している人であれば、経験したことがあるかもしれないが、以前はビルドが上手くいっていたのに、しばらく経ってビルドすると何故かエラーが発生するみたいな。
(Android SDKのツールや環境とかが変わるのだろうか・・・)
過去の経験上、ビルドエラーの発生の際は、大体以下のプラグインが関与している。
↓こいつです。収入源なので外せません・・・
cordova-plugin-admobpro
とりあえず、原因を探るため、
まずは Admob Pro を削除して、ビルドしてみることに。
#Admob Proを削除 cordova platform rm cordova-plugin-admobpro
で、ビルドを実行!
BUILD FAITL
同じエラーが発生。あぁ、ハマる予感。
次に、Cordova Androidを7.0から7.1に変更してみることに。
# Cordova Android 7.0を削除 cordova platform rm android # Cordova Android 7.1を追加 cordova platform add android@7.1.0
で、ビルドを実行!
BUILD SUCCESSFUL
お、通った。
何が変わったのか知らないけど、Cordova Android 7.0ではビルドエラーになる様なので、7.1 でいくことに。
さてさて、この状態で、Admob Pro を追加すればOKだろうか。
# Admob Proを追加 cordova plugin add https://github.com/floatinghotpot/cordova-admob-pro
で、ビルドを実行!
BUILD FAITL
こいつっ・・・期待を裏切る
以前は、Admob Proの導入バージョンを変えたりしながら、手さぐりでビルドが通る方法を探していたが、、、
最近は、Admob Free に移行中なので、このアプリも以前の記事に沿って変えることにした。
最後に Admob Freeを追加して終わりっと。
# Admob Free を追加 cordova plugin add cordova-plugin-admob-free --save
エラー発生!
「API_KEY_FOR_ANDROID」 が無いと怒られた(泣
もう勘弁なんだけど。。。
どうも最近のバージョンで、API_KEY_FOR_ANDROIDを付けた状態で、インストールする形になったようなので、ご注意を。(過去記事も直さなきゃね・・・)
# Admob Free を追加(API_KEY_FOR_ANDROID 付き) cordova plugin add cordova-plugin-admob-free --save --variable ADMOB_APP_ID="ca-【自分のアプリの広告ID】"
これで、無事 Admob Freeを追加完了。 さてさて、これで最後のビルドにしたいということで、 ビルド実行!
無事、成功しました。
毎度毎度、意味不明なエラーに振り回されます。
ちなみ、Android 7.0から7.1にあげると、
APIレベルは19以上になるので、サポート対象外のバージョンには、注意です。
例えば、(私も以前使っていた)Android 4.2とかは、サポート対象外になります。
Cordovaでハイブリッドアプリを開発する際に、JQueryはまだまだ現役です。
学んで損なし!私は、こちらで勉強しました!
Web制作の現場で使うjQueryデザイン入門[改訂新版] (Web Professional Books)
- 作者: 西畑一馬
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2013/03/07
- メディア: 大型本
- クリック: 4回
- この商品を含むブログ (8件) を見る