2
Help us understand the problem. What are the problem?

posted at

[Android] JCenter 依存解消でやったことメモ

はじめに

Android アプリではいろいろなライブラリをオープンなリポジトリからダウンロードして利用しています。
そのリポジトリの中に JCenter というモノがあり、2021年5月で閉鎖するという発表がありました。

この JCenter というリポジトリ、大体の Android アプリで参照されてるんじゃないかってぐらい主要なリポジトリなので Android 界隈がざわつき、閉鎖期限の延長もされたのですが、あまりに影響が大きすぎたため閉鎖はされずに読み取り専用で存続することになりました。

(詳細については コチラの記事 がとてもわかりやすかったです。ありがとうございます。)

読み取り専用で存続することになったとは言え、またいつ方針が変わるかわからないので JCenter の依存を解消することにしました。

基本的な方針として

  • ライブラリが MavenCentral リポジトリに移行されているか
    • yes
      • 現状のバージョンのものが存在するか
        • yes
          • 何もしない
        • no
          • 最新バージョンにアップデートして問題ないか
            • yes
              • 最新バージョンにする
            • no
              • gradle の cache ファイルをローカルにコピーして使用する
    • no
      • gradle の cache ファイルをローカルにコピーして使用する

こんな感じで進めました。

依存解消のためにやったことをつらつらと書き残しておきます。
何かの参考になると幸いです。

目次

  1. やったこと
  2. 参考

やったこと

  • build.gradle から jcenter() maven { url "http://dl.bintray.com... という記述削除
    • JCenter を参照しないようにする
  • ./gradlew --refresh-dependencies を実行
    • --refresh-dependencies というオプションで依存状態リフレッシュ
    • エラーが出なくなるまで繰り返す
  • mavenCentral()repositories に追加
  • de.mannodermaus.gradle.plugins:android-junit5:1.6.1.01.8.2.0 に変更
  • ./gradlew assemble --stacktrace --info 実行
    • StackTrace 付きでコンパイル
    • エラーが出なくなるまで繰り返す
  • com.linecorp:linesdk:5.0.1com.linecorp.linesdk:linesdk:5.6.2 に変更
  • maven { url 'https://s3.amazonaws.com/moat-sdk-builds' } 削除
    • 下記エラーが出るので削除
Could not HEAD 'https://s3.amazonaws.com/moat-sdk-builds/com/twitter/sdk/android/twitter/3.3.0/twitter-3.3.0.pom'. Received status code 403 from server: Forbidden
  • jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1jp.co.cyberagent.android:gpuimage:2.1.0に変更
-import jp.co.cyberagent.android.gpuimage.GPUImageFilter;
-import jp.co.cyberagent.android.gpuimage.GPUImageGrayscaleFilter;
-import jp.co.cyberagent.android.gpuimage.GPUImageSepiaFilter;
-import jp.co.cyberagent.android.gpuimage.GPUImageToneCurveFilter;
+import jp.co.cyberagent.android.gpuimage.filter.GPUImageFilter;
+import jp.co.cyberagent.android.gpuimage.filter.GPUImageGrayscaleFilter;
+import jp.co.cyberagent.android.gpuimage.filter.GPUImageSepiaToneFilter;
+import jp.co.cyberagent.android.gpuimage.filter.GPUImageToneCurveFilter;
buildscript {
        repositories {
            ...
            maven { url = rootProject.file('local-repository') }
        }
}
  • local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/pomaarjar など配置

    • local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/ ディレクトリ作成
      % mkdir -p local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/
      
    • jcenter() を参照した状態でビルドし Gradle の キャッシュ ~/.gradle/caches*lombok.ast* というファイル名で検索し、ヒットしたファイルを local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/ へコピー
      % cp `find ~/.gradle/caches -type f -name \*lombok.ast\* | grep modules | grep files` local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/
      
    • コピーできたか確認
    % ls -lsa local-repository/me/tatarka/retrolambda/projectlombok/lombok.ast/0.2.3.a2/
    total 1984
       0 drwxr-xr-x  5 usr0200413  staff     160  4 25 16:21 ./
       0 drwxr-xr-x  3 usr0200413  staff      96  4 25 16:19 ../
     560 -rw-r--r--  1 usr0200413  staff  283868  4 25 16:21 lombok.ast-0.2.3.a2-sources.jar
    1416 -rw-r--r--  1 usr0200413  staff  722592  4 25 16:21 lombok.ast-0.2.3.a2.jar
       8 -rw-r--r--  1 usr0200413  staff    1582  4 25 16:21 lombok.ast-0.2.3.a2.pom
    
  • 以下も上記と同じ手順で配置

    • local-repository/com/twitter/sdk/android/twitter/3.3.0/
    • local-repository/com/google/android/flexbox/2.0.1/
    • local-repository/com/twitter/sdk/android/tweet-ui/3.3.0/
    • local-repository/com/twitter/sdk/android/tweet-composer/3.3.0/
    • local-repository/com/twitter/sdk/android/twitter-core/3.3.0/
    • local-repository/com/mani/ThinDownloadManager/1.3.0/
    • local-repository/com/google/ads/mediation/mopub/5.8.0.0/
    • local-repository/com/mopub/libAvid-mopub/3.6.4/
    • local-repository/com/moat/analytics/mobile/mpub/moat-mobile-app-kit/2.4.5/
    • local-repository/com/google/android/exoplayer/exoplayer/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-core/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-ui/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-core/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-dash/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-hls/2.9.5/
    • local-repository/com/google/android/exoplayer/exoplayer-smoothstreaming/2.9.5/
    • local-repository/com/applovin/applovin-sdk/8.1.4/
    • local-repository/com/google/ads/mediation/facebook/5.9.0.2/
    • local-repository/io/realm/realm-gradle-plugin/6.0.2
    • local-repository/io/realm/realm-transformer/6.0.2/
    • local-repository/io/realm/realm-annotations/6.0.2/
    • local-repository/io/realm/realm-android-library/6.0.2/
    • local-repository/com/getkeepsafe/relinker/relinker/1.3.0/
    • local-repository/io/realm/realm-annotations-processor/6.0.2/
    • local-repository/com/github/maskarade/android/orma/orma/6.0.2/
    • local-repository/com/github/maskarade/android/orma/orma-annotations/6.0.2/
    • local-repository/com/github/maskarade/android/orma/orma-core/6.0.2/
    • local-repository/com/github/maskarade/android/orma/orma-migration/6.0.2/
    • local-repository/com/github/maskarade/android/orma/orma-processor/6.0.2/
    • local-repository/com/outbrain/sdk/pub/obsdk/3.9.2/
    • local-repository/com/yarolegovich/discrete-scrollview/1.4.4/
    • local-repository/com/google/ads/mediation/maio/1.1.5.0/
  • 以上で無事にビルドできるようになった

  • apk 作成時にエラーが出たので de.mannodermaus.junit5:android-test-corede.mannodermaus.junit5:android-test-runner1.0.0 から 1.3.0 に変更

参考

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
2
Help us understand the problem. What are the problem?