React Native で run-adnroid したときに発生しがちな3つのエラーと対策

背景

久しぶりに react-native run-android したらエラーが出て

以前にも同じようなエラーに遭遇した記憶があるので, 内容と対策をまとめておく.

環境

  • macOS: 10.13.2
  • react-native-cli: 2.0.1
  • react-native: 0.42.3
  • node: v8.9.1

エラー その1: SDK location not found.

ログ
SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
対策

app/android/local.properties に以下を追加. (なければ作成)

sdk.dir = /Users/{USER_NAME}/Library/Android/sdk

※Mac で ~/ はホームディレクトリとして認識されないので, 必ずフルパスで設定する.

参考

stackoverflow.com

エラー その2: The SDK Build Tools revision (23.0.1) is too low for project

ログ
The SDK Build Tools revision (23.0.1) is too low for project ':{PROJECT_NAME}'. Minimum required is 25.0.0
対策

app/android/build.gradle

'com.android.tools.build:gradle:2.3.0'

'com.android.tools.build:gradle:2.2.3' に変更.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        // classpath 'com.android.tools.build:gradle:2.3.0'
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}
参考

github.com

エラー その3: No connected devices!

ログ
com.android.builder.testing.api.DeviceException: No connected devices!
対策

Android Emulatorを先に起動しておく.

$ cd ~/Library/Android/sdk/tools
$ ./emulator -list-avds
Galaxy_Nexus_API_23
Nexus_5X_API_23

$ ./emulator -avd Nexus_5X_API_23
参考

Build Your App from the Command Line | Android Studio