React Native na Androida nie znalazł narzędzi do budowania


92

Co powoduje następujący problem? Czy moja wersja Android SDK nie jest obsługiwana?

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       

Od wersji 25 menedżera SDK musisz teraz zainstalować poprawne narzędzie do budowania z Android Studio, ponieważ androidpolecenie zostało usunięte: stackoverflow.com/a/44295114/82609
Sebastien Lorber

Odpowiedzi:


136

Prawdopodobnie musisz zaktualizować narzędzia do budowania.

Napotkałem problem, gdy próbowałem zaktualizować z interfejsu graficznego, nie pokazał dokładnej wersji pomocniczej, więc nie mogłem go zaktualizować.

Rozwiązano to patrząc na dostępne wersje z terminala z:

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

[…]

I zainstalowanie odpowiedniej wersji z:

android update sdk -a -u -t 4

3
Co to za androidprogram? Skąd to mam?
jameshfisher

2
@jameshfisher jest częścią Android SDK, znajduje się w katalogu "tools", na przykład: ~ / android-sdk / tools / android
edur

Kilkakrotnie próbowałem aktualizować za pomocą Android Studio, ale nigdy nie działało. To polecenie jednak zrobiło. Dziękuję Ci.
jordancooperman

W rzeczywistości znajduje się w android-sdk-linux w projekcie react.
Ghita Tomoiaga

Uwaga w nowych wersjach menedżera SDK androidpolecenie już nie działa i aby uzyskać dostęp do tego ustawienia, należy uruchomić Android Studio, patrz stackoverflow.com/a/44295114/82609
Sebastien Lorber

73

Tylko uwaga - ten błąd jest możliwy, ponieważ jedyna wersja zainstalowanych narzędzi do kompilacji jest zbyt nowa .

Otrzymałem dokładnie błąd, który dostał OP (narzekając, że natywny reagujący nie może znaleźć wersji narzędzi kompilacji 23.0.1). Kiedy sprawdziłem mojego Menedżera Android SDK, zobaczyłem to:

zrzut ekranu pokazujący 23.0.2 „Zainstalowano”, ale 23.0.1 „Niezainstalowane”

Naiwnie myślałem, że zainstalowanie najnowszej wersji narzędzi kompilacji (23.0.2 w momencie pisania) zadziała, ale najwyraźniej nie. Dodatkowo zainstalowanie 23.0.1 rozwiązało problem.


mam ten sam problem. czy nie ma sposobu na użycie nowszych narzędzi do kompilacji? może jakaś konfiguracja.
sodik

Ta sugestia zadziałała również dla mnie. 23.0.2 był zbyt nowy, idź rysunek. Dzięki.
Fernando

1
@boatcoder ta odpowiedź (zainstaluj starsze narzędzia do budowania) jest nie mniej poprawna niż odpowiedź sodika (zmodyfikuj, build.gradleaby React Native używał nowszych narzędzi do budowania). Wydaje się, że Android Build Tools podąża za SemVer, więc modyfikacja w build.gradlecelu użycia późniejszej poprawki lub podrzędnej wersji powinna być zwykle bezpieczna, może zapewnić pewne poprawki błędów na poziomie platformy lub ulepszenia wydajności i oszczędzić konieczności pobierania czegokolwiek. Ale zepsuje twoją aplikację, jeśli zostanie wykonana w wersji głównej , i wprowadza pewne ryzyko nawet w przypadku poprawek / mniejszych wydań, ponieważ używasz RN z narzędziami do kompilacji, których Facebook nie zamierzał.
Mark Amery,

28

Miałem też problem z nowszą wersją narzędzi SDK Build (tak samo jak Mark) ale udało mi się go rozwiązać poprzez modyfikację android/app/build.gradlei ustawienie odpowiedniej wersji np.

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

AKTUALIZACJA: Jak zasugerował Mark, rozsądnie jest tylko aktualizować wersję pomocniczą (lub łatkę) w ten sposób. Innym powodem, dla którego nie warto aktualizować tej wersji, jest to, że masz wiele bibliotek innych firm z częścią natywną - możesz w końcu zaktualizować je wszystkie. Musisz więc zważyć możliwe korzyści wynikające z nowszej wersji w porównaniu z nieco większą pracą.


1
nie zapomnij również zmienić linii 85 targetSdkVersion 22na targetSdkVersion 23.
Xianlin,

Okazało się, że wygenerowany plik build.gradle miał wersję buildToolsVersion „23.0.1”, ale mam zainstalowaną tylko wersję 23 (23.0.0) - Nie jestem pewien, gdzie „reakcja-native init” znajduje numery wersji zestawu Android / Tools SDK. Czyli przyczyna jest taka, że ​​reakcja natywna komendy init nie używa numeru wersji dostępnych narzędzi?
ferdil

Uważam, że 23.0.1 jest naprawiony (może się zmienić z wersjami RN), ale nie ma afaik wykrywania.
sodik

Dzięki, to rozwiązało mój problem, Zmieniono z 23 na 25 i 23.0.1 na 25.0.0
niren

4

Potrzebujesz zmodyfikować 4 pliki

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"

3

Musiałem zmienić mój projekt Androida build.gradlena:

compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.demoproject"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }

3

Oznacza to, że Android Build Tools zainstalowane w twoim systemie to coś innego niż plik konfiguracyjny twojej aplikacji (twój plik konfiguracyjny wskazuje na 23.0.1), ale prawdopodobnie masz 23, 24 lub 25.0. * W swoim systemie.

Rozwiązanie tego problemu:

  1. Edytuj build.gradleplik znajdujący się wanroid/app w folderze projektu
  2. Poszukaj wpisu buildToolsVersion„23.0.1” i zastąp go najnowszą wersją, którą masz w systemie. Znajdziesz go tutaj:C:\Program Files (x86)\Android\android-sdk\build-tools

LUB możesz spróbować zainstalować w swoim systemie wersję, którą masz w build.gradlepliku (za pomocą menedżera SDK).


1

Z menedżera Android SDK v25 musisz zainstalować odpowiednie narzędzia do kompilacji bezpośrednio z Android Studio, ponieważ androidpolecenie już nie działa:

zainstaluj z Android Studio


Aby dostać się do tego ekranu z poziomu Andriod Studio. plik -> ustawienia -> Android SDK -> Narzędzia SDK -> prawy dolny róg "Pokaż szczegóły pakietu" Dodałem ten komentarz, ponieważ jego znalezienie zajęło mi trochę czasu.
Jason Allshorn

1

Znajdź numer wersji w /Users/username/Library/Android/sdk/build-toolskatalogu, a następnie zmodyfikuj numer wersji buildToolsVersionodpowiadający konfiguracji Gradle


1

Jeśli masz narzędzia do kompilacji w wersji 24.0.1, zaktualizuj je, build.gradleaby pasowałybuildToolsVersion "24.0.0"

Mój Android/Sdk/build-tools/24.0.1/source.propertiesbył Pkg.Revisionustawiony 24.0.0.


0

Miałem ten problem, próbując zbudować w wierszu poleceń zgodnie z dokumentacją React Native. Rozwiązałem ten problem, otwierając projekt w Android Studio. Niedopasowane zależności pojawią się na pasku przekąskowym niepowodzenia kompilacji u dołu aplikacji. W przypadku każdej awarii kliknij łącze, aby rozwiązać problem.


0

Dowiedziałem się, że dzieje się tak również wtedy, gdy odinstalowałeś niektóre pakiety z projektu React-native, a na dole strony nadal znajdują się pakiety w zależnościach build Gradle, takie jak:

{ project(':react-native-sound-player') } Po usunięciu projektu pamiętaj o usunięciu powiązanego kodu z pliku MainApplication.java („: React-native-sound-player”)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.