React Native на Android не смог найти инструменты сборки

92

Что вызывает следующую проблему? Моя версия Android SDK не поддерживается?

Starting JS server...                                                                     
Building and installing the app on the device (cd android && gradlew.bat installDebug)...

FAILURE: Build failed with an exception.                                                  

* What went wrong:                                                                        
A problem occurred configuring project ':app'.                                            
> failed to find Build Tools revision 23.0.1       
Лукаш Жешотарски
источник
Из v25 диспетчера SDK вам теперь нужно установить правильный Build Tool из Android Studio, потому что androidкоманда удалена: stackoverflow.com/a/44295114/82609
Себастьян Лорбер

Ответы:

136

Возможно, вам нужно обновить инструменты сборки.

Я столкнулся с проблемой, когда пытался выполнить обновление через графический интерфейс, он не отображал точную младшую версию, поэтому я не мог выполнить обновление до нее.

Это было решено путем просмотра доступных версий из терминала с помощью:

android list sdk -a

[...]
Packages available for installation or update: 156
1- Android SDK Tools, revision 24.4
2- Android SDK Platform-tools, revision 23.0.1
3- Android SDK Platform-tools, revision 23.1 rc1
4- Android SDK Build-tools, revision 23.0.1

[...]

И устанавливаем нужную версию с помощью:

android update sdk -a -u -t 4
Эдур
источник
3
Что это за androidпрограмма? Где мне это взять?
jameshfisher
2
@jameshfisher - это часть Android SDK, он находится в каталоге "tools", например: ~ / android-sdk / tools / android
edur
Я несколько раз пробовал обновиться с помощью Android Studio, но ничего не вышло. Но эта команда сработала. Спасибо.
jordancooperman
На самом деле он находится в android-sdk-linux в проекте реакции.
Гита Томояга
Обратите внимание, что в новых версиях диспетчера SDK androidкоманда больше не работает, и для доступа к этому параметру необходимо запустить Android Studio, см. Stackoverflow.com/a/44295114/82609
Себастьен Лорбер
73

Просто примечание - эта ошибка может быть вызвана тем, что единственная установленная вами версия инструментов сборки слишком нова .

Я получил именно ту ошибку, которую получил OP (жалуясь, что реагирующий не может найти версию 23.0.1 Build Tools). Когда я проверил свой Android SDK Manager, я увидел следующее:

снимок экрана, показывающий 23.0.2 «Установлено», но 23.0.1 «Не установлено»

Я наивно думал, что установка последней версии Build-tools (23.0.2 на момент написания) сработает, но, видимо, нет. Дополнительная установка 23.0.1 устранила проблему.

Марк Эмери
источник
такая же проблема здесь. нет возможности использовать новые инструменты сборки? может какая-то конфигурация.
sodik
Это предложение сработало и для меня. 23.0.2 был слишком новым, поймите. Спасибо.
Фернандо,
1
@boatcoder, этот ответ (установить старые инструменты сборки) не менее правильный, чем sodik (измените, build.gradleчтобы React Native использовал более новые инструменты сборки). Инструменты сборки Android, похоже, следуют за SemVer, поэтому изменение build.gradleдля использования более позднего патча или дополнительной версии обычно должно быть безопасным, может содержать некоторые исправления на уровне платформы или улучшения производительности и избавляет вас от необходимости загружать что-либо. Но это приведет к поломке вашего приложения, если оно будет выполнено в выпуске основной версии, и представляет некоторый риск даже с исправлениями / второстепенными выпусками, поскольку вы используете RN с инструментами сборки, которые Facebook не планировал.
Марк Эмери,
28

У меня также была проблема с более новой версией инструментов SDK Build (таких же, как у Mark), но мне удалось решить ее, изменив android/app/build.gradleи установив правильную версию, например

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

ОБНОВЛЕНИЕ: как предположил Марк, разумно обновлять только второстепенную версию (или патч) таким образом. Еще одна причина, по которой не стоит обновлять эту версию, заключается в том, что у вас есть много сторонних библиотек с нативной частью - вы можете в конечном итоге обновить их все. Таким образом, вы должны взвесить возможные преимущества новой версии и немного больше работы.

содик
источник
1
не забудьте также изменить строку 85 targetSdkVersion 22на targetSdkVersion 23.
Xianlin
Я обнаружил, что сгенерированный файл build.gradle имеет buildToolsVersion «23.0.1», но у меня была установлена ​​только версия 23 (23.0.0). Не уверен, откуда «response-native init» находит номера версий SDK android / tools. Значит, причина в том, что команда init-native init не использует номер версии доступных инструментов?
Фердил
Я считаю, что 23.0.1 исправлен (возможно, может измениться с версиями RN), но нет обнаружения afaik.
sodik 07
Спасибо, это решило мою проблему, изменилось с 23 на 25 и с 23.0.1 на 25.0.0
niren
4

Необходимо изменить 4 файла

grep buildToolsVersion * -r | grep 23.0.1

Examples/Movies/android/app/build.gradle:    buildToolsVersion "23.0.2"
Examples/UIExplorer/android/app/build.gradle:    buildToolsVersion "23.0.2"
ReactAndroid/build.gradle:    buildToolsVersion "23.0.2"
local-cli/generator-android/templates/src/app/build.gradle:    buildToolsVersion "23.0.2"
gfax
источник
3

Мне пришлось изменить свой проект Android build.gradleна:

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.demoproject"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
user6428609
источник
3

Это означает, что инструменты сборки Android, установленные в вашей системе, находятся не в файле конфигурации вашего приложения (ваш файл конфигурации указывает на 23.0.1), но в вашей системе, вероятно, есть 23, 24 или 25.0. *.

Решение этой проблемы:

  1. Отредактируйте build.gradleфайл, расположенный anroid/appв папке вашего проекта
  2. Найдите запись buildToolsVersion«23.0.1» и замените ее последней версией, установленной в вашей системе. Вы можете найти это здесь:C:\Program Files (x86)\Android\android-sdk\build-tools

ИЛИ вы можете попробовать установить в своей системе версию, которая есть в build.gradleфайле (с помощью диспетчера SDK).

llioor
источник
1

Из Android SDK manager v25 вам необходимо установить правильные инструменты сборки прямо из Android Studio, потому что androidкоманда больше не работает:

установить из студии Android

Себастьян Лорбер
источник
Чтобы перейти на этот экран из Andriod Studio. файл -> настройки -> Android SDK -> Инструменты SDK -> внизу справа «Показать детали пакета» Я добавил этот комментарий, так как мне потребовалось время, чтобы найти его.
Джейсон Оллшорн
1

Найдите номер версии в /Users/username/Library/Android/sdk/build-toolsкаталоге, а затем измените номер версии, buildToolsVersionсоответствующий конфигурации Gradle.

user5710491
источник
1

Если у вас есть инструменты сборки версии 24.0.1, обновите свой, build.gradleчтобы он соответствовалbuildToolsVersion "24.0.0"

Мой Android/Sdk/build-tools/24.0.1/source.propertiesбыл Pkg.Revisionустановлен 24.0.0.

Муксит
источник
0

У меня возникла эта проблема, пытаясь создать в командной строке, следуя документации по реагированию на native. Я решил эту проблему, открыв проект в студии Android. Несоответствующие зависимости появятся на панели сбоев сборки в нижней части приложения. Для каждого сбоя щелкните ссылку, чтобы решить проблему.

Брэдфорд Кондон
источник
0

Я обнаружил, что это также происходит, если вы удалили некоторые пакеты из своего проекта, ориентированного на реакцию, и все еще есть пакеты в зависимостях сборки gradle внизу страницы, например:

{ project(':react-native-sound-player') } Обязательно удалите связанный код в файле MainApplication.java после удаления проекта (': react-native-sound-player')

Кевал Дхолакия
источник