0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

implementation 'io.realm:android-adapters:4.0.0' を削除

Posted at

最近、MacBook を買い換えたので Git から新しい端末へ Android アプリのプロジェクトをクローンしてビルドしています。その時に古い Android アプリのビルドが失敗してしまいました。エラーを見ると 'io.realm:android-adapters:4.0.0' がダウンロードできないようでした。

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find io.realm:android-adapters:4.0.0.

io.realm:android-adapters のために jcenter() を残していましたが、検索すると GitHub から Java ファイルをプロジェクトへ追加すればいいよ的なコメントを見つけました。

+++Webサイト抜粋+++
The Realm Adapters dependency is not moved to Maven yet. You can directly copy the RealmRecyclerViewAdapter Java file in your project and use it in your custom adapter. You will not need to add dependency at all.
+++
Repository other than jcenter() to get realm adapters 4.0.0?
https://www.mongodb.com/community/forums/t/repository-other-than-jcenter-to-get-realm-adapters-4-0-0/106236/24

この際、依存関係から io.realm:android-adapters を消して、jcenter() ともおさらばするときかなと思いました。(3周遅れぐらいかも...)

特に難しいことはありませんでしたが、io.realm:android-adapters と jcenter() を削除して、ビルドが成功するまでの手順を残しておきます。

削除してビルドが成功するまでの手順

  1. jcenter() を build.gradle から削除
  2. implementation 'io.realm:android-adapters:4.0.0' を削除
  3. RealmBaseAdapter.java または RealmRecyclerViewAdapter.java をプロジェクトへ追加
  4. 追加した Java ファイルを修正
  5. RealmBaseAdapter, RealmRecyclerViewAdapter を import から削除

1. jcenter() を build.gradle から削除

buildscript と allprojects にある jcenter() を削除します。

buildscript {
    repositories {
        google()
        mavenCentral()
        jcenter() //これを削除
    }
    //中略
}
allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() //これを削除
        maven { url 'https://jitpack.io'}
    }
}

2. implementation 'io.realm:android-adapters:4.0.0' を削除

dependencies に追加していた implementation 'io.realm:android-adapters:4.0.0' を削除して Sync します。

dependencies {
    implementation 'io.realm:android-adapters:4.0.0' //これを削除
    //中略
}

3. RealmBaseAdapter.java または RealmRecyclerViewAdapter.java をプロジェクトへ追加

この状態で、ビルドするともちろんエラーが発生するので、必要なファイルを GitHub からダウンロードしてプロジェクトへ追加します。

RealmBaseAdapter.java
https://github.com/realm/realm-android-adapters/blob/master/adapters/src/main/java/io/realm/RealmBaseAdapter.java

RealmRecyclerViewAdapter.java
https://github.com/realm/realm-android-adapters/blob/master/adapters/src/main/java/io/realm/RealmRecyclerViewAdapter.java

4. 追加した Java ファイルを修正

javaファイルの先頭部分にある package を自分のアプリに変更します。

package io.realm;

package を変更すると、Cannot resolve sysmbol のエラーが大量に出るので、シンボルを解決できるように realm 関連を import します。

RealmBaseAdapter.java
import io.realm.OrderedRealmCollection;
import io.realm.RealmChangeListener;
import io.realm.RealmList;
import io.realm.RealmModel;
import io.realm.RealmResults;
RealmRecyclerViewAdapter.java
import io.realm.OrderedCollectionChangeSet;
import io.realm.OrderedRealmCollection;
import io.realm.OrderedRealmCollectionChangeListener;
import io.realm.RealmList;
import io.realm.RealmModel;
import io.realm.RealmResults;

5. RealmBaseAdapter, RealmRecyclerViewAdapter を import から削除

RealmBaseAdapter と RealmRecyclerViewAdapter を使用していたソースコードから import を削除します。

これらを削除
import io.realm.RealmBaseAdapter;
import io.realm.RealmRecyclerViewAdapter;

これで、ビルドが成功するようになります。

さいごに

やり始めればすぐでしたが、jcenter() を消す作業が億劫になっていたので MacBook を買い換えて良かったと思ってます。(ミッドナイトって手垢が目立つ...)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?