एंड्रॉइड पर रिएक्ट नेटिव बिल्ड टूल्स को खोजने में विफल रहा


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       

SDK प्रबंधक के v25 से अब आपको एंड्रॉइड स्टूडियो से सही बिल्ड टूल इंस्टॉल करना होगा क्योंकि 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कार्यक्रम क्या है ? मुझे वह कहाँ मिलेगा?
जेम्फिशर

2
@jameshfisher यह एंड्रॉइड एसडीके का हिस्सा है, यह उदाहरण के लिए "टूल" निर्देशिका में स्थित है: ~ / android-sdk / tools / android
edur

मैंने कई बार एंड्रॉइड स्टूडियो के साथ अपडेट करने की कोशिश की, लेकिन इसने कभी काम नहीं किया। यह आदेश हालांकि किया। धन्यवाद।
जोर्डनकूपमैन

यह वास्तव में प्रतिक्रिया परियोजना में android-sdk-linux में है।
गीता तोमायगा

एसडीके प्रबंधक के नए संस्करणों में नोट androidकमांड काम नहीं करती है और इस सेटिंग को एक्सेस करने के लिए एंड्रॉइड स्टूडियो को चलाना पड़ता है देखें stackoverflow.com/a/44295114/82609
सेबस्टियन लॉबर

73

बस एक नोट - यह त्रुटि प्राप्त करना संभव है क्योंकि आपके द्वारा स्थापित बिल्ड टूल का एकमात्र संस्करण बहुत नया है

मुझे ठीक वही त्रुटि मिली जो ओपी को मिली (शिकायत है कि प्रतिक्रिया-मूल निवासी बिल्ड टूल संशोधन 23.0.1 नहीं पा सके)। जब मैंने अपने Android SDK प्रबंधक की जाँच की, तो मैंने यह देखा:

स्क्रीनशॉट दिखा रहा है 23.0.2 "स्थापित" लेकिन 23.0.1 "स्थापित नहीं"

मैंने भोलेपन से सोचा था कि बिल्ड-टूल्स (लेखन के समय 23.0.2) के नवीनतम संस्करण को स्थापित करना काम करेगा, लेकिन स्पष्ट रूप से नहीं। इसके अतिरिक्त 23.0.1 स्थापित करने से समस्या ठीक हो गई।


यहां भी यही समस्या। क्या नए बिल्ड टूल्स का उपयोग करने का कोई तरीका नहीं है? शायद कुछ विन्यास।
सोडिक

इस सुझाव ने मेरे लिए भी काम किया। 23.0.2 बहुत नया था, जाओ आंकड़ा। धन्यवाद।
फर्नांडो

1
@boatcoder इस उत्तर (पुराने बिल्ड टूल्स को स्थापित करें) सोडिक की तुलना में कम सही नहीं है ( build.gradleनए बिल्ड टूल्स के लिए रिएक्टिव नेटिव उपयोग करने के लिए संशोधित करें)। एंड्रॉइड बिल्ड टूल सेम वीयर का पालन करते हैं, इसलिए build.gradleबाद के पैच या मामूली संस्करण का उपयोग करने के लिए संशोधित करना आमतौर पर सुरक्षित होना चाहिए, कुछ प्लेटफ़ॉर्म-स्तरीय बगफिक्स या प्रदर्शन सुधार प्रदान कर सकते हैं, और आपको कुछ भी डाउनलोड करने के लिए बख्शते हैं। लेकिन यह आपके ऐप को तोड़ देगा अगर एक प्रमुख संस्करण रिलीज़ पर किया जाता है , और पैच / मामूली रिलीज़ के साथ भी कुछ जोखिम का परिचय देता है क्योंकि आप आरएन का उपयोग उन बिल्ड टूल के साथ कर रहे हैं जो फेसबुक का इरादा नहीं था।
मार्क अमेरी

28

मुझे एसडीके बिल्ड टूल्स (मार्क के समान) के नए संस्करण के साथ भी समस्या थी, लेकिन मैं इसे संशोधित करने android/app/build.gradleऔर संस्करण को सेट करने के साथ इसे हल करने में कामयाब रहा , उदाहरण के लिए।

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
...

अद्यतन: जैसा कि मार्क ने सुझाव दिया है, यह बुद्धिमान है कि केवल इस तरह से मामूली (या पैच) संस्करण को अपडेट करें। इस संस्करण को अपडेट नहीं करने का एक और कारण यह है कि जब आपके पास मूल भाग के साथ 3 जी पार्टी के बहुत सारे काम हों - तो आप उन सभी को अपडेट कर सकते हैं। तो आपको नए वर्जन बनाम थोड़े और काम के संभावित लाभों का वजन करना होगा।


1
लाइन 85 targetSdkVersion 22को भी बदलना न भूलें targetSdkVersion 23
जियानलिन

मैंने पाया कि निर्मित build.gradle फ़ाइल में buildToolsVersion "23.0.1" था, लेकिन मेरे पास केवल संस्करण 23 (23.0.0) स्थापित था - यह सुनिश्चित नहीं था कि "रिएक्ट-नेट इनिट" को एंड्रॉइड / टूल्स एसडीके संस्करण संख्या कहां से मिलती है। तो वास्तव में कारण यह है कि प्रतिक्रिया-मूल इनिट कमांड उपलब्ध टूल संस्करण संख्या का उपयोग नहीं कर रहा है?
15

मेरा मानना ​​है कि २३.०.१ तय है (हो सकता है कि आरएन संस्करणों के साथ बदल सकते हैं) लेकिन कोई पता नहीं है।
सोडिक

धन्यवाद, इसने मेरी समस्या हल कर दी, 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

इसका अर्थ है कि आपके सिस्टम पर इंस्टॉल किया गया एंड्रॉइड बिल्ड टूल आपके एप्लिकेशन की कॉन्फ़िगरेशन फ़ाइल (आपकी कॉन्फ़िगरेशन फ़ाइल 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फ़ाइल में है (एसडीके प्रबंधक के साथ)।


1

एंड्रॉइड एसडीके प्रबंधक v25 से आपको सीधे एंड्रॉइड स्टूडियो से सही बिल्ड टूल इंस्टॉल करना होगा क्योंकि androidकमांड अब काम नहीं करता है:

Android स्टूडियो से इंस्टॉल करें


Andriod स्टूडियो के भीतर से इस स्क्रीन पर आने के लिए। फ़ाइल -> सेटिंग्स -> एंड्रॉइड एसडीके -> एसडीके टूल्स -> नीचे दाईं ओर "पैकेज विवरण दिखाएं" मैंने इस टिप्पणी को जोड़ा क्योंकि मुझे इसे खोजने में थोड़ी देर लगी।
जेसन एलशोर्न

1

/Users/username/Library/Android/sdk/build-toolsनिर्देशिका में संस्करण संख्या का पता लगाएं , और फिर buildToolsVersionग्रैडल कॉन्फ़िगरेशन के संगत संस्करण की संख्या को संशोधित करें


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

मुझे देशी लाइन के प्रलेखन के बाद कमांड लाइन पर निर्माण करने की कोशिश में यह समस्या थी। मैंने एंड्रॉइड स्टूडियो में प्रोजेक्ट खोलकर इस समस्या को हल किया। बेमेल निर्भरता ऐप के निचले भाग में बिल्ड विफलता स्नैकबार में दिखाई देगी। प्रत्येक विफलता के लिए, समस्या को हल करने के लिए लिंक पर क्लिक करें।


0

मुझे पता चला कि ऐसा तब भी होता है जब आपने अपनी प्रतिक्रिया-मूल परियोजना से कुछ पैकेजों की स्थापना रद्द कर दी थी और पेज के निचले भाग में आपकी बिल्ड ग्रेडल निर्भरताओं में अभी भी पैकेज हैं:

{ project(':react-native-sound-player') } प्रोजेक्ट हटाने के बाद MainApplication.java फ़ाइल में संबंधित कोड को निकालना सुनिश्चित करें (': react-native-sound-player')

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.