2018/02/09

コマンドラインで gradle を実行すると com.android.tools.build:gradle が見つからないエラー

既存の Android プロジェクトを Android Studio 3.0.1 で読み込んだところ、
Android Studio ではビルド出来るのに、コマンドラインでは以下のようなエラーが出るようになってしまいました。

```console
`gutter: false;
$ ./gradlew tasks

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'MyApplication'.
> Could not resolve all files for configuration ':classpath'.
   > Could not find com.android.tools.build:gradle:3.0.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.jar
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
```



確かに [JCenter](https://bintray.com/android/android-tools/com.android.tools.build.gradle) には 2.3.3 以降の登録が無いので、3.0.1 を見に行ったらエラーになりますね。

調べてみると、Google は JCenter から Google 独自のレポジトリに乗り換えた様子。

> 参考
>
> [Add Build Dependencies | Android Studio](https://developer.android.com/studio/build/dependencies.html#google-maven)

というわけで、トップディレクトリの `build.gradle` に下記 `google()` レポジトリを加えればAndroid Studio 3.0.1 で新規プロジェクトを作成すると既に入っていましたビルドが通るようになりました。

```groovy
`first-line: 3; highlight: 6; 
buildscript {
    
    repositories {
        google()
        jcenter()
    }
```

なお、Android Studio は実行時に `android-studio/gradle/m2repository` 以下を追加しているため、ビルドが通るようです親切なのだろうけど、本当はビルドを通さず、エラーメッセージ等で教えてくれた方が良いと思う

0 件のコメント: