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       

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

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.


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.


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"

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"
    }

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 .


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


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


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.


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.


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').

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.