今年の春頃にビルド作業が大変になってきたので、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を設定する方法は以下の記事に書いています。