React Native unter Android konnte Build Tools nicht finden

92

Was verursacht folgendes Problem? Wird meine Android SDK-Version nicht unterstützt?

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       
Łukasz Rzeszotarski
quelle
Ab Version 25 des SDK-Managers müssen Sie jetzt das richtige Build-Tool von Android Studio installieren, da der androidBefehl entfernt wurde: stackoverflow.com/a/44295114/82609
Sebastien Lorber

Antworten:

136

Wahrscheinlich müssen Sie Ihre Build Tools aktualisieren.

Ich hatte das Problem, als ich versuchte, über die grafische Oberfläche zu aktualisieren. Es wurde nicht die genaue Nebenversion angezeigt, sodass ich keine Aktualisierung durchführen konnte.

Es wurde gelöst, indem man sich die verfügbaren Versionen des Terminals ansah mit:

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

[...]

Und die richtige Version installieren mit:

android update sdk -a -u -t 4
edur
quelle
3
Was ist das für ein androidProgramm? Woher bekomme ich es?
Jameshfisher
2
@ Jameshfisher Es ist Teil des Android SDK, es befindet sich im Verzeichnis "Tools" zum Beispiel: ~ / android-sdk / tools / android
edur
Ich habe mehrmals versucht, mit Android Studio zu aktualisieren, aber es hat nie funktioniert. Dieser Befehl hat es jedoch getan. Danke dir.
jordancooperman
Es ist in Android-SDK-Linux in React Project tatsächlich.
Ghita Tomoiaga
Beachten Sie, dass in neuen Versionen des SDK-Managers der androidBefehl nicht mehr funktioniert und Android Studio ausgeführt werden muss, um auf diese Einstellung zuzugreifen.
Sebastien Lorber
73

Nur eine Anmerkung - es ist möglich, diesen Fehler zu erhalten, da die einzige Version der von Ihnen installierten Build-Tools zu neu ist .

Ich habe genau den Fehler erhalten, den das OP erhalten hat (ich habe mich beschwert, dass React-Native Build Tools Version 23.0.1 nicht finden konnte). Als ich meinen Android SDK Manager überprüfte, sah ich Folgendes:

Screenshot mit 23.0.2 "Installiert", aber 23.0.1 "Nicht installiert"

Ich hatte naiv gedacht, dass die Installation der neuesten Version der Build-Tools (23.0.2 zum Zeitpunkt des Schreibens) funktionieren würde, aber anscheinend nicht. Durch die zusätzliche Installation von 23.0.1 wurde das Problem behoben.

Mark Amery
quelle
selbes Problem hier. Gibt es keine Möglichkeit, neuere Build-Tools zu verwenden? vielleicht etwas Konfiguration.
Sodik
Dieser Vorschlag hat auch bei mir funktioniert. 23.0.2 war zu neu. Vielen Dank.
Fernando
1
@boatcoder Diese Antwort (ältere Build-Tools installieren) ist nicht weniger korrekt als die von sodik (ändern build.gradle, damit React Native neuere Build-Tools verwendet). Android Build Tools scheinen SemVer zu folgen, daher sollte das Ändern build.gradlezur Verwendung eines späteren Patches oder einer kleineren Version normalerweise sicher sein, einige Bugfixes oder Leistungsverbesserungen auf Plattformebene bieten und erspart das Herunterladen von Daten. Bei einer Hauptversion wird Ihre App jedoch beschädigt, und selbst bei Patch- / Nebenversionen besteht ein gewisses Risiko, da Sie RN mit Build-Tools verwenden, die Facebook nicht beabsichtigt hat.
Mark Amery
28

Ich hatte auch ein Problem mit der neueren Version der SDK Build-Tools (wie Mark), konnte es jedoch durch Ändern android/app/build.gradleund Festlegen der richtigen Version beheben , z

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

UPDATE: Wie Mark vorgeschlagen hat, ist es ratsam, nur kleinere (oder Patch-) Versionen auf diese Weise zu aktualisieren. Ein weiterer Grund, warum Sie diese Version nicht aktualisieren sollten, ist, wenn Sie viele Bibliotheken von Drittanbietern mit nativem Teil haben - möglicherweise aktualisieren Sie alle. Sie müssen also die möglichen Vorteile einer neueren Version gegenüber etwas mehr Arbeit abwägen.

sodik
quelle
1
Vergessen Sie nicht, auch Zeile 85 targetSdkVersion 22zu ändern targetSdkVersion 23.
Xianlin
Ich fand heraus, dass die generierte build.gradle-Datei buildToolsVersion "23.0.1" hatte, aber ich hatte nur Version 23 (23.0.0) installiert - Ich bin nicht sicher, wo der "reag-native init" die SDK-Versionsnummern für Android / Tools findet. Die Ursache ist also tatsächlich, dass der Befehl react-native init nicht die Versionsnummer der verfügbaren Tools verwendet?
Ferdil
Ich glaube, 23.0.1 ist behoben (kann sich möglicherweise mit RN-Versionen ändern), aber es gibt keine Erkennung afaik.
Sodik
Danke, das hat mein Problem gelöst. Geändert von 23 auf 25 und 23.0.1 auf 25.0.0
niren
4

Müssen 4 Dateien ändern

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
quelle
3

Ich musste mein Android-Projekt ändern build.gradlein:

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
quelle
3

Dies bedeutet, dass die auf Ihrem System installierten Android Build Tools etwas anderes sind als in der Konfigurationsdatei Ihrer App (Ihre Konfigurationsdatei zeigt auf 23.0.1), aber Sie haben wahrscheinlich 23, 24 oder 25.0. * Auf Ihrem System.

Die Lösung zur Behebung dieses Problems:

  1. Bearbeiten Sie die build.gradleDatei anroid/appin Ihrem Projektordner
  2. Suchen Sie nach dem Eintrag buildToolsVersion"23.0.1" und ersetzen Sie ihn durch die neueste Version, die Sie auf Ihrem System haben. Sie finden es hier:C:\Program Files (x86)\Android\android-sdk\build-tools

ODER Sie könnten versuchen, die in der build.gradleDatei enthaltene Version (mit dem SDK-Manager) auf Ihrem System zu installieren .

llioor
quelle
1

Ab Android SDK Manager v25 müssen Sie die richtigen Build-Tools direkt aus Android Studio installieren, da der androidBefehl nicht mehr funktioniert:

Installieren Sie von Android Studio

Sebastien Lorber
quelle
So gelangen Sie in Andriod Studio zu diesem Bildschirm. Datei -> Einstellungen -> Android SDK -> SDK-Tools -> unten rechts "Paketdetails anzeigen" Ich habe diesen Kommentar hinzugefügt, da ich eine Weile gebraucht habe, um ihn zu finden.
Jason Allshorn
1

Suchen Sie die Versionsnummer im /Users/username/Library/Android/sdk/build-toolsVerzeichnis und ändern Sie die Versionsnummer der buildToolsVersionentsprechenden Gradle-Konfiguration

user5710491
quelle
1

Wenn Sie Build Tools Version 24.0.1 haben, aktualisieren Sie Ihre build.gradle übereinstimmenbuildToolsVersion "24.0.0"

Mein Android/Sdk/build-tools/24.0.1/source.propertieshatte Pkg.Revisionsich vorgenommen 24.0.0.

Muqsith
quelle
0

Ich hatte dieses Problem beim Versuch, in der Befehlszeile nach der Dokumentation von reag native zu erstellen. Ich habe dieses Problem gelöst, indem ich das Projekt in Android Studio geöffnet habe. Die nicht übereinstimmenden Abhängigkeiten werden in der Snackleiste für Buildfehler am unteren Rand der App angezeigt. Klicken Sie für jeden Fehler auf den Link, um das Problem zu beheben.

Bradford Condon
quelle
0

Ich habe herausgefunden, dass es auch passiert, wenn Sie einige Pakete aus Ihrem reaktionsnativen Projekt deinstalliert haben und sich noch Pakete in Ihren Build-Gradle-Abhängigkeiten am Ende der Seite befinden, wie:

{ project(':react-native-sound-player') } Stellen Sie sicher, dass Sie den zugehörigen Code in der Datei MainApplication.java entfernen, nachdem Sie das Projekt entfernt haben (': react-native-sound-player').

Kêvâl Dholakiya
quelle