JCenterの終了について

Monacaチームの小田川です。

Androidアプリを開発する際に使用されているサービスにJCenterがあります。JCenterは、Bintrayが提供しているサービスの一部になります。

JCenterを管理しているJFrogは、JCenterを含むBintray等のサービスを2021年5月1日で終了する案内を行っていましたが、その後の案内として、

  • JCenterは、読み取り専用リポジトリとして無期限に保持する。(英語サイト
  • 2022年2月1日以降は、JCenterのサービスはArtifactory以外からは利用できなくなる。(日本語サイト

というような異なる内容の案内が行われていました。

このブログ記事投稿時点(2022/02/04)では、JCenterは利用できているようなので、現状、JCenterは、読み取り専用リポジトリとしてサービスが提供されているようです。

今回は、JCenterが終了した場合の影響について見ていきたいと思います。

JCenterが終了した場合の影響1

MonacaでAndroidアプリ開発を行う場合、JCenterは、ビルド時に利用されています。ビルド中にJCenterが利用できない場合は、以下のようなビルドエラーが発生します。

> Failed to list versions for androidx.core:core.
   > Unable to load Maven meta-data from https://jcenter.bintray.com/androidx/core/core/maven-metadata.xml.
      > Could not get resource 'https://jcenter.bintray.com/androidx/core/core/maven-metadata.xml'.
         > Could not GET 'https://jcenter.bintray.com/androidx/core/core/maven-metadata.xml'.
            > Read timed out

MonacaでAndroidアプリ開発を行う場合のJCenterの設定は、ビルド時にビルドサーバ側で使用されるAndroidプラットフォームに設定されているため、MonacaクラウドIDE上からは修正を行うことができません。

Androidプラットフォーム 10系からは、JCenterの設定が削除されているため、JCenterの影響は発生しませんが、Androidプラットフォーム 10系未満の場合は、JCenterの設定が行われているため、影響が発生します。

Monacaでは、Cordova 10.0でAndroidプラットフォーム 10.1.1に対応しています。Cordova 9.0を利用している場合は、Cordoava 10.0にアップグレードする必要があります。

Androidプラットフォーム 10.1.1の設定方法等については、以下を参照していください。

JCenterが終了した場合の影響2

JCenterは、Androidのネイティブ開発に必要なライブラリーを提供しているサービスになるため、JCenterの設定は、Cordovaプラグインにも設定されている場合があります。

サードパーティー製CordovaプラグインにJCenterの設定が行われている場合、JCenterが終了した際には、JCenterが終了した場合の影響1に記載したようなビルドエラーが発生します。

サードパーティー製Cordovaプラグインを使用してJCenterに関するビルドエラーが発生した場合は、JCenterに依存しない更新版が公開されていないか確認してみてください。

おわりに

JCenterが終了した場合は、Androidビルドでビルドエラーが発生する可能性があります。

MonacaプロジェクトでAndroidプラットフォーム 10系未満を使用していてJCenterに関するビルドエラーが発生する場合は、Androidプラットフォーム 10.1.1を使用してビルドを試してみてください。

Androidプラットフォーム 10.1.1を使用してもJCenterに関するビルドエラーが発生する場合は、対象のMonacaプロジェクトで利用しているでサードパーティー製CordovaプラグインにJCenterの設定が行われていないか確認し、更新版が公開されている場合は、更新版を試してみてください。