酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Android Studioで"support-v4-preferencefragment"が原因でビルドを通せない

今年の春頃にビルド作業が大変になってきたので、JenkinsでAndroidアプリをビルドし始めた話を書きました。

つい最近までやっていた案件では自動ビルドマンが大変活躍してくれました。他のプロジェクトにも適用させようとしたところ、support-v4-preferencefragmentが見つからないのでビルドが通りませんでした。

support-v4-preferencefragmentが見つからない

Jenkinsでは以下のようなエラーが発生していました。

FAILURE: Build failed with an exception.


* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_DebugCompile'.
   > Could not find com.android.support:support-v4-preferencefragment:1.0.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         https://jcenter.bintray.com/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
         https://repo1.maven.org/maven2/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         https://repo1.maven.org/maven2/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
         https://oss.sonatype.org/content/repositories/snapshots/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         https://oss.sonatype.org/content/repositories/snapshots/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
         file:/Users/ch3cooh/.m2/repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         file:/Users/ch3cooh/.m2/repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
         file:/Users/ch3cooh/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         file:/Users/ch3cooh/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
         file:/Users/ch3cooh/Library/Android/sdk/extras/google/m2repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.pom
         file:/Users/ch3cooh/Library/Android/sdk/extras/google/m2repository/com/android/support/support-v4-preferencefragment/1.0.0/support-v4-preferencefragment-1.0.0.jar
     Required by:
         ExampleApp:app:unspecified

コマンドラインでビルドしたせいで依存関係を解決できなかったのかな?と思い、Android Studioでも試してみましたがやはり以下のようなエラーが表示されました。

Error:(63, 13) Failed to resolve: com.android.support:support-v4-preferencefragment:1.0.0
<a href="install.m2.repo">Install Repository and sync project</a><br><a href="openFile:/Users/ch3cooh/.jenkins/jobs/job/workspace/ExampleApp/app/build.gradle">Show in File</a><br><a href="open.dependency.in.project.structure">Show in Project Structure dialog</a>

対策

support-v4-preferencefragment」はgitからcloneしてきて自前でビルドをする必要があるようです。

$ export ANDROID_HOME=/Users/ch3cooh/Library/Android/sdk

$ git clone https://github.com/kolavar/android-support-v4-preferencefragment.git

$ cd android-support-v4-preferencefragment

$ ./gradlew uploadArchives

以上です。

追記

この記事を書いている途中で気が付いたのですが、Android SDKへのパスが通っていなかったのか下記のようなエラーで止まってしまいました。

SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

これは過去にも引っかかったエラーです。ANDROID_HOMEを設定する方法は以下の記事に書いています。