概要
ライブラリを読み込みの際に、場合によってはbuild.gradle
にrepository
を追加する必要があるのですが、この方法が分からず時間を使ってしまったのでメモしておきます。
結論
先に簡単に結論を書くと、gradleのバージョンが7系以上の場合、repository
の設定はbuild.gradle
ではなくsetting.gradle
で行う必要があります。
以下、詳しく説明します。
やりたかっこととエラー内容
私の場合、グラフを作成するためのライブラリであるMPAndroidChart
を利用しようと思い調べていたところ、build.gradle
を以下のように2箇所修正すれば良いことがわかりました。
repositories
にmaven { url 'https://jitpack.io' }
を追加dependencies
にimplementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
を追加
なお、Androidアプリではbuild.gradle
が2つありますが、前者はルート直下のbuild.gradle
に、後者はルート直下のapp直下にあるbuild.gradle
に追記しました。
(それぞれ、すでにrepositories
とdependencies
の記載があったためです)
しかし、ビルド時に以下のようなエラーになりました。
FAILURE: Build completed with 7 failures. 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:checkDebugAarMetadata'. > Could not resolve all files for configuration ':app:debugRuntimeClasspath'. > Could not find com.github.PhilJay:MPAndroidChart:v3.1.0. Searched in the following locations: - https://dl.google.com/dl/android/maven2/com/github/PhilJay/MPAndroidChart/v3.1.0/MPAndroidChart-v3.1.0.pom - https://repo.maven.apache.org/maven2/com/github/PhilJay/MPAndroidChart/v3.1.0/MPAndroidChart-v3.1.0.pom Required by: project :app
エラーの原因と解決方法
エラーを読むと、追加したはずのjitpack
のレポジトリの参照ができていない様子。
調べたところ、maven { url 'https://jitpack.io' }
の記載箇所が違いました。
gradleのバージョンが7以上の場合はbuild.gradle
ではなく、settings.gradle
に記載する必要がありました。
setting.gradle
の全体としては以下のようになります。
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://jitpack.io' } // 上の2行は元々書かれていたので、この行を追加しました } } rootProject.name = "{プロジェクト名}" include ':app'
参考
最終的には以下のサイトが解決の糸口になりました。gradleのバージョンが原因という性質上、人によって書いていることは違いますが...