React Native の Android のビルドで SDK Build Tools のバージョンが低すぎると怒られた場合
React Native の Android のビルドで SDK Build Tools のバージョンが低すぎると怒られた場合の対処方法です。
状況
React Native でネイティブコードを含むライブラリを追加したところ、Android のビルド時に以下のようなエラーが発生しました:
Error:The SDK Build Tools revision (23.0.3) is too low for project ':react-native-google-signin'. Minimum required is 25.0.0
超訳すると、「SDK Build Tools のリビジョン(23.0.3)が低すぎるので、25.0.0 以上にしなさい」とのことです。
どうやら、自分が作っているアプリの build.gradle の設定で com.android.tools.build:gradle:2.3.2 が buildToolsVersion の 25.0.0 以上を要求しているようです。
対処方法1
com.android.tools.build:gradle:2.2.3 にダウングレードすると buildToolsVersion が 25.0.0 よりも下でもエラーにならないようです。
でも、せっかく新しいバージョンがあるのにダウングレードするのは少し気が引けますね。
対処方法2
エラーメッセージの通りに各ライブラリの buildToolsVersion を 25.0.0 以上に変更することで対処できます。
ただし、各ライブラリのファイルは通常、リポジトリから除外されているので、再インストール時には同じ設定を再度行う必要があります。
対処方法3
自分が作っているアプリ側で各ライブラリの buildToolsVersion を強制的に変更します。
それには以下のコードを android/build.gradle に入れます:
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion 25
buildToolsVersion '25.0.0'
}
}
}
}
各バージョンは適宜変更してください。
注意点は、ライブラリ側でこれよりも高いバージョンを指定している場合は低いバージョンに変更されてしまうということです。
どの方法を選ぶか?
それぞれ一長一短あるので選択が難しいですが、そもそもはライブラリ側の指定が古いのが原因なので、ライブラリ側が対応すれば直る過渡期的な問題と考え、2番目の方法を取ることにしました。