React Native บน Android ไม่พบ Build Tools


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
Sebastien Lorber

คำตอบ:


136

คุณอาจต้องอัปเดต Build Tools ของคุณ

ฉันประสบปัญหาเมื่อพยายามอัปเดตจากอินเทอร์เฟซกราฟิกมันไม่แสดงเวอร์ชันรองที่แน่นอนดังนั้นฉันจึงไม่สามารถอัปเดตได้

แก้ไขได้โดยดูเวอร์ชันที่มีอยู่จากเทอร์มินัลด้วย:

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 ใน react project จริง
Ghita Tomoiaga

หมายเหตุในตัวจัดการ SDK เวอร์ชันใหม่androidคำสั่งไม่ทำงานอีกต่อไปและต้องใช้ Android Studio เพื่อเข้าถึงการตั้งค่านี้โปรดดูที่stackoverflow.com/a/44295114/82609
Sebastien Lorber

73

เพียงแค่ทราบ - เป็นไปได้ที่จะได้รับข้อผิดพลาดนี้เพราะรุ่นเฉพาะของการสร้างเครื่องมือที่คุณได้ติดตั้งเป็นใหม่เกินไป

ฉันได้รับข้อผิดพลาดอย่างแม่นยำที่ OP ได้รับ (บ่นว่า react-native ไม่พบ Build Tools revision 23.0.1) เมื่อฉันตรวจสอบ Android SDK Manager ของฉันฉันเห็นสิ่งนี้:

ภาพหน้าจอแสดง 23.0.2 "ติดตั้ง" แต่ 23.0.1 "ไม่ได้ติดตั้ง"

ฉันคิดอย่างไร้เดียงสาว่าการติดตั้ง Build-tools เวอร์ชันล่าสุด (23.0.2 ในขณะที่เขียน) จะใช้งานได้ แต่ดูเหมือนจะไม่เป็นเช่นนั้น นอกจากนี้การติดตั้ง 23.0.1 ได้แก้ไขปัญหาแล้ว


ปัญหาเดียวกันที่นี่ ไม่มีวิธีใช้เครื่องมือสร้างรุ่นใหม่หรือไม่? อาจมีการกำหนดค่าบางอย่าง
sodik

คำแนะนำนี้ใช้ได้ผลสำหรับฉันเช่นกัน 23.0.2 ใหม่เกินไปไปคิด ขอบคุณ.
Fernando

1
@boatcoder คำตอบนี้ (ติดตั้งเครื่องมือสร้างรุ่นเก่า) ไม่ถูกต้องน้อยกว่าของ sodik (แก้ไขbuild.gradleเพื่อให้ React Native ใช้เครื่องมือสร้างที่ใหม่กว่า) ดูเหมือนว่า Android Build Tools จะเป็นไปตาม SemVer ดังนั้นการแก้ไขbuild.gradleเพื่อใช้โปรแกรมแก้ไขในภายหลังหรือเวอร์ชันรองควรจะปลอดภัยอาจให้การแก้ไขข้อบกพร่องในระดับแพลตฟอร์มหรือการปรับปรุงประสิทธิภาพบางอย่างและช่วยให้คุณต้องดาวน์โหลดอะไรก็ได้ แต่มันจะทำลายแอปของคุณถ้าทำในที่สำคัญการเปิดตัวรุ่นและแนะนำบางความเสี่ยงแม้จะมีรุ่นแพทช์ / เล็กน้อยเนื่องจากคุณกำลังใช้ RN กับการสร้างเครื่องมือที่ Facebook ไม่ได้ตั้งใจ
Mark Amery

28

ฉันยังมีปัญหากับเครื่องมือ SDK Build เวอร์ชันใหม่กว่า (เช่นเดียวกับ Mark) แต่ฉันสามารถแก้ไขได้ด้วยการปรับเปลี่ยนandroid/app/build.gradleและตั้งค่าเวอร์ชันที่เหมาะสมเช่น

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

อัปเดต: ตามที่ Mark แนะนำควรอัปเดตเวอร์ชันรอง (หรือแพทช์) ด้วยวิธีนี้เท่านั้น อีกเหตุผลหนึ่งที่ไม่อัปเดตเวอร์ชันนี้คือเมื่อคุณมี libs ของบุคคลที่สามจำนวนมากที่มีส่วนเนทีฟคุณอาจต้องอัปเดตทั้งหมด ดังนั้นคุณต้องให้น้ำหนักประโยชน์ที่เป็นไปได้ของเวอร์ชันใหม่เทียบกับการทำงานอีกเล็กน้อย


1
อย่าลืมที่จะเปลี่ยนแปลงสาย 85 targetSdkVersion 22ไปtargetSdkVersion 23ได้เป็นอย่างดี
Xianlin

ฉันพบว่าไฟล์ build.gradle ที่สร้างขึ้นมี buildToolsVersion "23.0.1" แต่ฉันติดตั้งเวอร์ชัน 23 (23.0.0) เท่านั้น - ไม่แน่ใจว่า "react-native init" พบหมายเลขเวอร์ชัน SDK ของ Android / tools จากที่ใด สาเหตุคือจริงๆแล้วคำสั่ง react-native init ไม่ได้ใช้หมายเลขเวอร์ชันของเครื่องมือที่มีอยู่?
ferdil

ฉันเชื่อว่า 23.0.1 ได้รับการแก้ไขแล้ว (อาจเปลี่ยนแปลงได้ด้วยเวอร์ชัน RN) แต่ไม่มีการตรวจจับ afaik
sodik

ขอบคุณสิ่งนี้ช่วยแก้ปัญหาของฉันได้เปลี่ยนจาก 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"

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

3

หมายความว่า Android Build Tools ที่ติดตั้งในระบบของคุณเป็นอย่างอื่นที่ไม่ใช่ในไฟล์กำหนดค่าของแอปของคุณ (ไฟล์การกำหนดค่าของคุณชี้ไปที่ 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)


1

จาก Android SDK manager v25 คุณต้องติดตั้งเครื่องมือสร้างที่ถูกต้องโดยตรงจาก Android Studio เนื่องจากandroidคำสั่งไม่ทำงานอีกต่อไป:

ติดตั้งจาก android studio


เพื่อไปที่หน้าจอนี้จากภายใน Andriod Studio ไฟล์ -> การตั้งค่า -> Android SDK -> เครื่องมือ SDK -> ด้านล่างขวา "แสดงรายละเอียดแพ็กเกจ" ฉันเพิ่มความคิดเห็นนี้เพราะใช้เวลาสักพักกว่าจะพบ
Jason Allshorn

1

ค้นหาหมายเลขเวอร์ชันใน/Users/username/Library/Android/sdk/build-toolsไดเร็กทอรีจากนั้นแก้ไขหมายเลขเวอร์ชันของการbuildToolsVersionกำหนดค่า Gradle


1

หากคุณมี Build Tools เวอร์ชัน 24.0.1 ให้อัปเดตbuild.gradleให้ตรงกับbuildToolsVersion "24.0.0"

ฉันAndroid/Sdk/build-tools/24.0.1/source.propertiesได้ตั้งค่าให้Pkg.Revision24.0.0


0

ฉันมีปัญหานี้พยายามสร้างที่บรรทัดคำสั่งตามเอกสารประกอบของ react native ฉันแก้ไขปัญหานี้โดยเปิดโปรเจ็กต์ใน android studio การอ้างอิงที่ไม่ตรงกันจะปรากฏในสแน็คบาร์ของการสร้างความล้มเหลวที่ด้านล่างของแอป สำหรับความล้มเหลวแต่ละครั้งให้คลิกที่ลิงค์เพื่อแก้ไขปัญหา


0

ฉันพบว่ามันเกิดขึ้นเช่นกันหากคุณถอนการติดตั้งแพ็คเกจบางอย่างจากโปรเจ็กต์แบบตอบสนองของคุณและยังมีแพ็คเกจอยู่ในการอ้างอิง build gradle ของคุณที่ด้านล่างของหน้าเช่น:

{ project(':react-native-sound-player') } อย่าลืมลบโค้ดที่เกี่ยวข้องในไฟล์ MainApplication.java หลังจากลบโปรเจ็กต์ (': react-native-sound-player')

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.