しょうもないミスだったので反省を込めてメモ。
現象
Circle CIでなぜかbuild toolがないよ、と怒られるエラーが発生していました。
こんなかんじのエラーメッセージ
pendencies ':modules:cl2/12 projects> Building 0% > :app:preBuildmodules:Aviary-SDK:compileLint:app:preBuild
> Building 0%:modules:Aviary-SDK:compileLint
> Building 0% > :modules:Aviary-SDK:copyReleaseLint:modules:Aviary-SDK:copyReleaseLint
> Building 0%UP-TO-DATE
> Building 0%
> Building 0%1% > :modules:Aviary-SDK:mergeReleaseProguardFiles:modules:Aviary-SDK:mergeReleaseProguardFiles
> Building 1%2% > :modules:Aviary-SDK:preBuild:modules:Aviary-SDK:preBuild
> Building 2%FAILED
> Building 2%
> Building 2%3%4%
> Building 4%FAILURE:
> Building 4%Build failed with an exception.
> Building 4%
> Building 4%
> Building 4%* What went wrong:
> Building 4%Execution failed for task ':app:preBuild'.
> Building 4%>
> Building 4%failed to find Build Tools revision 21.1.1
circle.ymlは以下のように設定していました。
circle.yml
dependencies:
override:
- echo y | android update sdk --no-ui --filter "android-22,build-tools-21.1.1,extra-google-m2repository,extra-android-m2repository"
特にマズい所はなさそうなので、何か追加で設定が必要なのかと思い、カスタマーサポートに連絡するも、有意義な返答は得られず、エラーは出たままで、途方に暮れてしまいました。
解決策
dependencies設定時のダブルクォートが不要でした。
Circle CIの実行結果をたどっていくと、android update sdk
コマンドで、Successになっているのに、以下のようなメッセージが出ていました。
echo y | android update sdk --no-ui --filter "android-22,build-tools-21.1.1,extra-google-m2repository,extra-android-m2repository"
Refresh Sources:
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
(中略)
Error: Ignoring unknown package filter 'android-22'
Error: Ignoring unknown package filter 'build-tools-21.1.1'
Error: Ignoring unknown package filter 'extra-google-m2repository'
Error: Ignoring unknown package filter 'extra-android-m2repository'
Warning: The package filter removed all packages. There is nothing to install.
sdk updateできてないやないかーい
で、結局以下のようにしたらちゃんとbuild通りましたとさ。
circle.yml
dependencies:
override:
dependencies:
override:
- echo y | android update sdk --no-ui --all --filter extra-google-m2repository,extra-android-m2repository,build-tools-21.1.1