その他

Cordova 9.0のAndroidビルドにつて

Android

Cordova

Monaca

Monacaチームの小田川です。

2023年4月中旬以降、Cordova 9.0のAndroidビルドで、下記のようなJCenterに関連するビルドエラーが継続的に発生しています。

A problem occurred configuring root project 'android'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve org.ow2.asm:asm:6.0.
     Required by:
         project : > com.android.tools.build:gradle:3.3.0
         project : > com.android.tools.build:gradle:3.3.0 > com.android.tools.build:builder:3.3.0
         project : > com.android.tools.build:gradle:3.3.0 > com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02
      > Could not resolve org.ow2.asm:asm:6.0.
         > Could not parse POM https://jcenter.bintray.com/org/ow2/asm/asm/6.0/asm-6.0.pom
            > Could not resolve org.ow2.asm:asm-parent:6.0.
               > Could not resolve org.ow2.asm:asm-parent:6.0.
                  > Could not parse POM https://jcenter.bintray.com/org/ow2/asm/asm-parent/6.0/asm-parent-6.0.pom
                     > Could not resolve org.ow2:ow2:1.3.
                        > Could not resolve org.ow2:ow2:1.3.
                           > Could not get resource 'https://dl.google.com/dl/android/maven2/org/ow2/ow2/1.3/ow2-1.3.pom'.
                              > Could not GET 'https://dl.google.com/dl/android/maven2/org/ow2/ow2/1.3/ow2-1.3.pom'.
                                 > Read timed out

JCenterについては、JCenterの閉鎖についてでも案内しましたが、JCenterを管理しているJFrogは、JCenterを含むBintray等のサービスを2021年5月1日で終了する案内を行っており、現在、JCenterは、読み取り専用リポジトリとしてサービスが提供されている状況になっています。

今後、Cordova 9.0のAndroidビルドが安定する可能性もありますが、今回は、JCenterの設定と現状での回避策を説明していきたいと思います。

JCenterの設定について

JCenterの設定は、Androidプラットフォーム 10系未満に設定されています。

Cordova 9.0で提供されているAndroidプラットフォームのバージョンは、8系になります。Cordova 10系でもAndroidプラットフォーム 9系を提供していますが、現在のところ、Androidプラットフォーム 8系で上記のようなエラーが発生しています。

ビルドの際に参照されるライブラリーのバージョンは、Androidプラットフォームに設定されているAndroid Gradleプラグインのバージョンも関係するため、今回発生しているエラーは、Androidプラットフォーム 8系で使用されているAndroid Gradleプラグイン 3.3.0で発生している可能性があります。

また、JCenterの設定は、Cordovaプラグイン側でも設定されている場合があります。定期的にメンテナンスが行われているCordovaプラグインの場合は、JCenterの依存設定を改修しているケースが多くみられますが、メンテナンスが行われていないCordovaプラグインの場合は、JCenterの依存設定が行われている場合があります。そのため、メンテナンスが行われていないCordovaプラグインを使用している場合は、上記のようなエラーが発生する可能性があります。

回避策

現状での回避策は、対象のMonacaプロジェクトをCordova 9.0からCordova 10以降へアップグレードし、Androidプラットフォーム 9系以降を使用する必要があります。今後、JCenterに関するエラーを回避したい場合は、JCenterの依存設定が削除されたAndroidプラットフォーム 10系以降を使用する必要があります。

Androidプラットフォームの設定は、MonacaクラウドIDEの下記のメニューから行うことができます。

  • ビルド – ビルド環境の設定 – ANDROID
Cordova 11用ビルド環境の設定画面

Cordovaプラグイン側にJCenterの依存設定が行われている場合は、対象のCordovaプラグインを改修する必要があります。現状、Cordovaプラグイン側にJCenterの依存設定が行われている場合は、メンテナンスが行われていないため、利用者側で改修したカスタム版のCordovaプラグインを作成して使用するか、他のサードパーティー製Cordovaプラグインを利用する必要があります。

おわりに

現在、JCenterについては、読み取り専用リポジトリとしてサービスが提供されていますが、終了が案内されているサービスになります。今後、今回発生しているエラーがAndroidプラットフォーム 9系でも発生する可能性があります。そのため、早めにJCenterの依存設定が削除されたAndroidプラットフォーム 10系以降を使用することをおすすめします。

author img for keiji_asial

keiji_asial

前の記事へ

次の記事へ

一覧へ戻る
PAGE TOP