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?

More than 3 years have passed since last update.

[Android]Androidアプリ側で何かしらのライブラリを読み込むとコンフリクトバージョンエラーが発生する理由

Last updated at Posted at 2020-11-06

はじめに

Androidで開発をしていて、よくある問題として何かしらのライブラリをgradleで読み込み実行すると、kotlinのバージョンンコンフリクト系のエラーが発生する場合がある。ので見解

ちょっと調べたのでメモ程度に残しておきます

原因

いろいろな理由があるのかも知れないが、まずライブラリのkotlinのバージョンとコンフリクトを起こしている場合に起きえます。
その場合は、そもそもライブラリを使うのを諦めるか、ライブラリのバージョンを古いものを使ってみるか、ライブラリを組み込むアプリのkotlinバージョンをアップしてみるかなどよくわからずに適当に試行錯誤して解決することが多いです。

kotlinライブラリのコンフリクト

kotlinのライブラリを読み込むとkotlinのライブラリがアプリ側に読み込まれます。
その分apkのサイズとメソッド数は増加します。multi dexが必要かも。

アプリ側に読み込まれたkotlinライブラリとアプリ側のkotlinのバージョンでコンフリクトが起きる場合があるようです。
gradleの使用は下記を参考ください。kotlinバージョンでコンフリクトが発生した場合は新しいバージョンで上書きがされます。デフォルトの挙動なのでここを最新で上書きしないような設定をgradleファイルで行っても解決するはずです。(未確認)

コンフリクトが起きた場合の挙動
https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html#org.gradle.api.artifacts.ResolutionStrategy:failOnVersionConflict()

解決方法

アプリ側で最新の実装するライブラリと同じバージョンにする。またはそれ以上にすると解決する可能性があります。
ライブラリとアプリ開発が同じ場合は問題なく実装できますが、大体の場合でライブラリは別企業か別の個人が実装しているはずです。そのためライブラリを作る人は常に最新のkotlinでバージョンアップをしてドキュメントにも最新のkotlinを利用するように促すことが必要なのではないでしょうか。

またはライブラリはkotlinではなくjavaで実装を行うとアプリ側にkotlinライブラリが読み込まれることはないためこの問題は発生しないはずです。はずです。

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?