natural born minority
時勢のものなんで、たぶん今月くらいしか役に立たない記事ですが、ハマったんで書いときます。
gradle test
等で)運用している場合のトラブルシュート自分は「ポータビリティを持った”Android画面テスト環境”を作りたい」ということから、AndroidSDKをセットアップするDockerfile を作成しています。
その docker build
が「2017年10月12日から失敗するように」なりました。
Android Studio
で作られたプロジェクトを gradle
でコンソールからテストする場合、予め android-sdk_r24.3.4-linux.tgz
など Android SDK
をダウンロード/配置した後、
./gradlew test
を実行すれば出来ます。(初回実行時にSDK絡みの必要なファイルをダウンロードします)
その際「(GUI等で)ライセンスに同意したか」を確認するため、
${ANDROID_HOME}/licenses/android-sdk-license
${ANDROID_HOME}/licenses/android-sdk-preview-license
というテキストファイルの存在と内容を確認します。
そこを回避するため「SDKインストール後に、予めファイルを配置しておく」という”やり方”があります。
(SDKインストールした他端末から持ってきても良いですし、そのファイル内容も固定でなので拾ってきてもOKです)
…のはずで実績ありだったのですが、2017年10月12日から失敗するようになりました。(Dockerイメージのキャッシュがあったので、少しもっと前からかもしれません)
./gradlew test
...(中略)...
Download https...(略、リポジトリからjar群ダウンロード)
File /root/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 21.1.2 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 21.1.2 not accepted.
Checking the license for package Android SDK Platform 23 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 23 not accepted.
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> You have not accepted the license agreements of the following SDK components:
[Android SDK Build-Tools 21.1.2, Android SDK Platform 23].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
licenseで文句言われてる…が、変えた覚えないで!
許可される ${ANDROID_HOME}/licenses/android-sdk-license
ファイルの内容が変わったようです。
(ちょうどその日でStackOverflowにコメントが付いていました。)
android-sdk-license
が
8933...(略
と、(空行が一行目で)二行だったものが、
8933...(略
d56f...(略
の四行に成ったのかな?(特性上、なんとなくハッシュを書くのをためらうな)
配置する android-sdk-license
ファイルを、前述の原因の通りに変更しました。
自分の場合は、Dockerfile
内で echo
使ってファイルを作ってるので…
RUN echo -e "\n8933...(略)" > "$ANDROID_HOME/licenses/android-sdk-license"
を、
RUN echo -e "\n8933...(略)\n\nd56f5...(略)" > "$ANDROID_HOME/licenses/android-sdk-license"
にしました。
ググッても「困ってる人」が居ない感じ(だから自分はトラブルシュートに時間がかかった)でした。
もしかしたら「コンソールオンリーでAndroidSDK動かしたい人」「AndroidStudioのインストールをせずにビルドしてる人」があまり居ないのかな?…はたまた「常識レベルの話」で話題にすらでないのか。
なんか「やり方間違えてる」んじゃないかと不安です。
blog comments powered by Disqus