LoginSignup
9
1

More than 5 years have passed since last update.

Android Studio3.2でCould not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).

Posted at

環境

  • Android Studio 3.2.1
  • プロジェクトのGradle Plugin:3.1.2

現象

  • Android Studio 3.2.1でプロジェクトを初めて開くとエラーメッセージが表示された
    • エラーの元はとgradleのようだ
    • プロジェクトは3年以上前に作成された古いアプリ
    • Android Studio 3.1でビルドはできていた

エラーログ

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'my_android_project'.
> Could not resolve all files for configuration ':classpath'.
   > Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

classpathが解決できてない?
lint-gradle-api.jarとは一体なんだ...?

classpath という単語があるなら、トップレベルbuild.gradleが原因に違いない。

原因

このstackoverflowによると、トップレベルのbuild.gradleにある依存関係の宣言順が間違っている。

buildscript {
    repositories {
        jcenter()
        google() // <=宣言順がおかしい
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.2.1'
    }
}

allprojects {
    repositories {
        jcenter()
        google() // <=同上
        mavenCentral()
        maven { url "https://maven.google.com" }
    }
}

公式も順番は優先度に関係があると言っている。
Dependency order | Android Developers

日本語訳
最初のライブラリーは2番目のライブラリーよりも高い優先度を持ち、2番目のライブラリーは3番目のライブラリーより高い優先度を持ちます。

エラーログを見るに、
lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).  https://jcenter.bintray.com/~ から検索したが見つからないと出ている。

おそらくlint-gradle-api.jarjcenter()の中ではなく、google()の中に含まれているんだろう。

それでこのようなエラーログが出ていると予想した。

解決策

google()の宣言位置を一番上に移動させるだで解決した。

buildscript {
    repositories {
        google() // <=jcenterの前に移動
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.2.1'
    }
}

allprojects {
    repositories {
        google() // <=同上
        jcenter()
        mavenCentral()
        maven { url "https://maven.google.com" }
    }
}

これは古いAndroid Studioで作成されたバージョンで発生する問題のようで、割と見かけるエラーなのかもしれない。
自分は初めて見たけどね。

9
1
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
9
1