Так сложилось, что я долго отлаживал апу на React Native для iOS, совершенно не думая об Android. И вот в один прекрасный день очередь дошла до react-native run-android
. Но балалаечка не заиграла:
FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':app'. > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
Т.к. я не запускал раньше билд на Android, стало понятно, что где-то что-то не прописано из путей. И действительно, чтобы решить этот баг, нужно в папочке android вашего проекта RN, создать файлик local.properties
, в который поместим буквально 1 строку:
sdk.dir = /Users/%username%/Library/Android/sdk
- для Windows
sdk.dir = C:/Users/USERNAME/AppData/Local/Android/sdk
- для Linux систем
sdk.dir = /home/USERNAME/Android/Sdk
Присоединяюсь к флешмобу. Делаю кросс-платформенное приложение-плеер на React Native. Сначала сделал работу со звуком на open-source компонентах. Всё работало. Даже информация о треке выводилась в систему через компонент, оборачивающий MPNowPlayingInfo и MediaSession Metadata. Но плеер подразумевает работу в фоне большую часть времени. В iOS это решается через соответствующий флаг в Capabilities. В Android же единственный верный путь, насколько я понял, – это отдельная служба. Портирую сейчас логику на Java, используя код из тех самых open-source компонентов. Хорошо хоть UI уцелел.