依存関係を解決できないというエラーが発生
ある日、古くなっていたmainブランチの内容を最新のものに反映させるために、Android Studioにてブランチのアップデート、合わせbuild.graldeの同期を行いました。
最後にコミットした時には、アップデートを行なった開発環境ではなく、別の開発環境にて作業をしていました。その時には、依存関係に関するエラーが発生することはありませんでした。
ところが、最新の内容に更新されたbuild.gradleの同期を行った際に、次のようなエラーが発生しました。
Failed to resolve: androidx.appcompat:appcompat-resources:1.4.2
Add Google Maven repository and sync project
Show in Project Structure dialog
Show Details
Affected Modules: app
エラーの原因はio.coil-kt:coil:2.2.2だった
エラーの内容を調べていたら、この問題の原因がio.coil-kt:coil:2.2.2
らしいことに辿り着きました。
* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Could not resolve androidx.appcompat:appcompat-resources:1.4.2.
Required by:
project :app > io.coil-kt:coil:2.2.2 > io.coil-kt:coil-base:2.2.2
> No cached version of androidx.appcompat:appcompat-resources:1.4.2 available for offline mode.
> No cached version of androidx.appcompat:appcompat-resources:1.4.2 available for offline mode.
エラーの内容を元に、試しに依存関係を追加してみたが・・・
そこで、試しにバージョン1.4.2
のandroidx.appcompat:appcompat-resources
をdepdencies
に追加してみることにしました。
implementation("androidx.appcompat:appcompat-resources:1.4.2")
そして、build.gradleの同期を行いましたが、再度次の内容のエラーが発生しました。
Failed to resolve: androidx.appcompat:appcompat-resources:1.4.2
Add Google Maven repository and sync project
Show in Project Structure dialog
Show Details
Affected Modules: app
試しにプロジェクトのビルドを行なってみたのですが、次の内容のエラーが表示されてしまい、ビルドに失敗してしまいました。
No cached version of androidx.appcompat:appcompat-resources:1.4.2 available for offline mode.
Disable Gradle 'offline mode' and sync project
安定版を依存関係に追加することで解決
上述のエラーの内容から察して、1.4.2
のバージョンのandroidx.appcompat:appcompat-resources
がリポジトリにて見つからないのだろうと思いました。
そこで、公式ドキュメントのリリースノートで、AppCompat
の内容を確認しました。
安定版として1.5.1
が公開されていることがわかったので、次の依存関係を追加してみることにしました。
implementation("androidx.appcompat:appcompat-resources:1.5.1")
そして、build.gradleの同期を行いました。結果、エラーは消え同期に成功しました。同様にプロジェクトのビルドにも成功しました。
> Task :prepareKotlinBuildScriptModel UP-TO-DATE
BUILD SUCCESSFUL in 468ms
まとめ
依存関係が解決できない系のエラーが発生した場合は、一回落ち着いてエラーログをよく読み、対象のライブラリの現在のバージョンを確認してみることをオススメします。(将来の自分へ)