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番目の方法を取ることにしました。