• इस पेज पर, यह जानकारी उपलब्ध है
  • संशोधन

SDK टूल के बिल्ड टूल की जानकारी

  • इस पेज पर, यह जानकारी उपलब्ध है
  • संशोधन

Android SDK Build-Tools, Android SDK का एक कॉम्पोनेंट है. यह Android ऐप्लिकेशन बनाने के लिए ज़रूरी है. यह <sdk>/build-tools/ डायरेक्ट्री में इंस्टॉल होता है.

आपको Android SDK मैनेजर का इस्तेमाल करके, बिल्ड टूल के सबसे नए वर्शन को डाउनलोड करके, अपने बिल्ड टूल के कॉम्पोनेंट को हमेशा अपडेट रखना चाहिए. अगर Gradle 3.0.0 के लिए Android प्लग इन या इसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो आपका प्रोजेक्ट, प्लग इन में बताए गए बिल्ड टूल के डिफ़ॉल्ट वर्शन का अपने-आप इस्तेमाल करता है. अगर आपको बिल्ड टूल के किसी दूसरे वर्शन का इस्तेमाल करना है, तो अपने मॉड्यूल के build.gradle में buildToolsVersion का इस्तेमाल करके बताएं. इसके लिए, यह तरीका अपनाएं:

GroovyKotlin
android {
    buildToolsVersion "34.0.0"
    ...
}
android {
    buildToolsVersion = "34.0.0"
    ...
}

संशोधन

नीचे दिए गए सेक्शन में, Build Tools की रिलीज़ के बारे में नोट दिए गए हैं. यह पता लगाने के लिए कि आपके एसडीके में Build Tools के कौनसे रिविज़न उपलब्ध हैं, Android SDK Manager में इंस्टॉल किए गए पैकेज की सूची देखें.

Build Tools, रिविज़न 34.0.0 RC3(अप्रैल 2023)

सामान्य गड़बड़ियां ठीक की गई हैं और सुधार किए गए हैं.

इस अपडेट में, Android 14 के रिलीज़ होने से पहले उपलब्ध एपीआई का इस्तेमाल करके ऐप्लिकेशन बनाने की सुविधा शामिल है.

इस अपडेट में, यह समस्या ठीक की गई है:

  • core-lambda-stubs.jar के 33.0.0 वर्शन में, macOS और Linux/Windows के बीच अंतर है. (समस्या #237299698 देखें.)

इस अपडेट में, यह समस्या ठीक की गई है:

इस अपडेट में, Android 11 के रिलीज़ होने से पहले उपलब्ध एपीआई का इस्तेमाल करके, ऐप्लिकेशन बनाने की सुविधा शामिल है.

इस अपडेट में, यह समस्या ठीक की गई है:

  • macOS Catalina पर Renderscript की मदद से बिल्ड करने में आ रही समस्या. (समस्या #142590626 देखें)

इस अपडेट में, यह समस्या ठीक की गई है:

इस अपडेट में, एपीआई लेवल 29 के साथ बिल्ड करने की सुविधा शामिल है.

इस अपडेट में, Android Gradle प्लग इन 3.2.0 के साथ काम करने की सुविधा शामिल है. साथ ही, इन समस्याओं को ठीक किया गया है:

  • JNI लाइब्रेरी की एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, androidx.renderscript.RenderScript.create() को कॉल करने पर ऐप्लिकेशन क्रैश हो जाते थे.
  • एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, Program type already present के साथ androidx.annotation संसाधनों को बिल्ड करने में गड़बड़ियां आ रही थीं.

इसमें D8 का नया वर्शन शामिल है.

Java 8 भाषा की सुविधाएं चालू करने पर, लेम्ब्डा को कंपाइल करने के लिए बेहतर सहायता मिलती है.

Java 8 भाषा की सुविधाओं के लिए सहायता को बेहतर बनाया गया है.

टेस्टिंग के लिए बनाए गए APK में, लेगसी मल्टीडेक्स की सुविधा जोड़ी गई है. (समस्या #37324038)

सामान्य गड़बड़ियों को ठीक करने के अलावा, इस रिलीज़ में ये अपडेट भी शामिल हैं:

  • apksigner को 0.8 वर्शन पर अपडेट करता है:
    • Java 9 के साथ काम करता है. (समस्या #37137869)
    • नया --pass-encoding पैरामीटर, एएससीआईआई से बाहर के पासवर्ड का इस्तेमाल करके एन्क्रिप्ट की गई पासकोड और पासकोड मैनेज करने के लिए. अगर Java 9 पर स्विच करने के बाद, apksigner आपके पासकोड या पासकोड को डिक्रिप्ट नहीं कर पाता है, तो इस पैरामीटर का इस्तेमाल करके उस कैरेक्टर एन्कोडिंग की जानकारी दें जिसका इस्तेमाल आपने पासकोड या पासकोड बनाने के लिए किया था. ज़्यादा जानकारी के लिए, apksigner दस्तावेज़ देखें या कमांडलाइन से apksigner sign --help चलाएं.
    • गड़बड़ी का बेहतर मैसेज, जब apksigner किसी काम न आने वाले डाइजेस्ट या हस्ताक्षर एल्गोरिदम की वजह से, JAR हस्ताक्षर की पुष्टि नहीं कर पाता. (समस्या #63525618)
  • Gradle के लिए Android प्लग इन 3.0.0-beta7 या इसके बाद के वर्शन का इस्तेमाल करते समय, AAPT2 डेमन मोड के लिए सहायता.

सामान्य गड़बड़ियों को ठीक करने के अलावा, इस रिलीज़ में apksigner को बिल्ड टूल्स पैकेज में वापस लाया गया है. इसे 26.0.0 वर्शन में गलती से हटा दिया गया था. साथ ही, टूल में ये अपडेट भी शामिल किए गए हैं:

  • सुरक्षित हार्डवेयर में सेव की गई कुंजियों से हस्ताक्षर करने की सुविधा देने के लिए, PKCS #11 की सुविधा जोड़ी गई है. (समस्या #37140484)
  • हस्ताक्षर करने से पहले, JCA प्रोवाइडर के अतिरिक्त प्रोवाइडर लोड करने की सुविधा जोड़ी गई है.
  • APKs की पुष्टि करते समय, android:targetSandboxVersion का पालन करता है.
  • हस्ताक्षर करते समय, उन APK को अस्वीकार कर देता है जिनकी फ़ाइलों के नाम में 'CR' (कैरिज रिटर्न), 'LF' (लाइन फ़ीड), या 'NUL' (शून्य) जैसे खास वर्ण शामिल हों.
  • स्पेस वाले पैरामीटर को सही तरीके से हैंडल करने के लिए, apksigner.bat को ठीक करता है. (समस्या #38132450)
  • MANIFEST.MF में एक ही एंट्री के लिए एक से ज़्यादा डाइजेस्ट मौजूद होने पर, JAR हस्ताक्षर की पुष्टि करने से जुड़ी गड़बड़ी को ठीक करता है. (समस्या #38497270)

इसमें एपीआई लेवल 26 के साथ बिल्ड करने की सुविधा जोड़ी गई है. साथ ही, इसमें सामान्य गड़बड़ियों को ठीक किया गया है.

apksigner के बारे में अपडेट:

  • मौजूदा --out पैरामीटर के साथ समरूपता के लिए --in पैरामीटर जोड़ा गया.
  • अगर आपने --key-pass का इस्तेमाल करके पासवर्ड नहीं डाला है, तो apksigner कीस्टोर पासवर्ड को पासवर्ड के तौर पर इस्तेमाल करता है. हालांकि, अगर पासवर्ड के लिए कोई दूसरी कुंजी का इस्तेमाल करना है, तो अब आपको कमांड-लाइन से पासवर्ड डालने के लिए कहा जाएगा. (समस्या #37134986)
  • ASCII के अलावा दूसरे वर्णों वाले पासवर्ड के लिए, jarsigner के साथ काम करने की सुविधा जोड़ी गई. (समस्या #37135737)

बग समाधान.

इस रिलीज़ में गड़बड़ियां ठीक की गई हैं और apksigner में ये सुधार किए गए हैं:

  • ऐसे APK के लिए सहायता जिनमें JAR एंट्री के नामों को बदला गया हो.
  • --print-certs स्विच अब MD5 फ़िंगरप्रिंट भी डंप करता है.

Jack टूलचेन की गड़बड़ियां ठीक की गईं:

  • Jack में ASCII के बाहर की सोर्स फ़ाइलों के साथ काम करने से जुड़ी समस्या को ठीक किया गया. (समस्या #218892)
  • कुछ कॉम्पाइलेशन के दौरान AssertionError दिखने की समस्या को ठीक किया गया है. (समस्या #208414)
  • jarsigner की जगह, APK साइनिंग टूल apksigner जोड़ा गया. डिफ़ॉल्ट रूप से, apksigner, APKs पर साइन करने के लिए, jarsigner के इस्तेमाल किए जाने वाले पारंपरिक JAR साइनिंग स्कीम और Android 7.0 (एपीआई लेवल 24) में पेश किए गए APK सिग्नेचर स्कीम v2 का इस्तेमाल करता है. APK सिग्नेचर स्कीम v2 से साइन किए गए APK में कोई भी बदलाव करने पर, उसका हस्ताक्षर अमान्य हो जाता है. इसलिए, zipalign जैसे APK पोस्ट-प्रोसेसिंग को apksigner को शुरू करने से पहले ही पूरा कर लेना चाहिए, उसके बाद नहीं. apksigner से पहले zipalign को शुरू करने पर, यह ठीक से काम करता है, क्योंकि apksigner, jarsigner के उलट, APK अलाइनमेंट और कंप्रेसन को बनाए रखता है.
  • arm64 डिवाइसों पर, RenderScript की सहायता लाइब्रेरी से जुड़ी समस्याएं ठीक करना.
  • Jelly Bean वाले कुछ डिवाइसों पर, RenderScript की सहायता लाइब्रेरी से जुड़ी समस्याएं ठीक करना.
  • Android के लिए Gradle प्लग इन के 2.1.0 और उसके बाद के वर्शन का इस्तेमाल करते समय, renderscriptTargetAPI 21+ के साथ काम करता है .
  • dx टूल की मर्ज करने की परफ़ॉर्मेंस को बेहतर बनाया गया.
  • Windows के लिए, RenderScript के कंपाइलर में आ रही समस्याओं को ठीक किया गया.

RenderScript टूल में मौजूद समस्याओं को ठीक किया गया.

Android 6.0 (एपीआई लेवल 23) रिलीज़ के लिए सहायता जोड़ी गई.

Android 4.4 (एपीआई लेवल 19) से लेकर Android 4.1 (एपीआई लेवल 16) डिवाइसों पर, RenderScript के साथ काम करने से जुड़ी समस्याओं को ठीक किया गया.

Android 5.1 (एपीआई लेवल 22) के लिए सहायता जोड़ी गई.

32-बिट मोड में डेटा लेआउट बनाने से जुड़ी समस्या को ठीक किया गया.

मल्टीडेक्स स्क्रिप्ट से जुड़ी समस्याएं ठीक की गईं.

APKs और Jack के लिए, मल्टीडेक्स फ़ाइल का इस्तेमाल करने की सुविधा जोड़ी गई. इससे, 64K मेथड रेफ़रंस की सीमा को हल करने में मदद मिलेगी.

Windows प्लैटफ़ॉर्म पर काम करने में आने वाली समस्याओं को हल करने के लिए, Eclipse ADT के लिए अपडेट पूरा करें.

Windows पर Eclipse ADT के लिए शुरुआती अपडेट. कृपया 21.0.2 रिविज़न का इस्तेमाल करें.

सामान्य जानकारी:
  • Android 5.0 (एपीआई लेवल 21) के लिए सहायता जोड़ी गई.
  • RenderScript अब एपीआई लेवल 21 और उसके बाद के वर्शन के लिए, 32/64-बिट ऑपरेशन के साथ आसानी से काम करता है.
  • JaCoCo प्लग इन का इस्तेमाल करते समय, Gradle बिल्ड सिस्टम से जुड़ी समस्या को ठीक किया गया. (समस्या 69174)
  • Windows पर लंबी कमांड लाइन के साथ इस्तेमाल करने के लिए, input-list विकल्प जोड़ा गया है.
सामान्य जानकारी:
  • Android Wear के लिए सहायता जोड़ी गई.
सामान्य जानकारी:
  • बिल्ड टूल में zipalign जोड़ा गया.
  • aapt में बदलाव किया गया है, ताकि उन एक्सएमएल फ़ाइलों को अनदेखा किया जा सके जो कंपाइल नहीं हो पाती हैं.

RenderScript के साथ काम करने से जुड़ी समस्या को ठीक किया गया.

RenderScript के बिल्ड से जुड़ी समस्याएं ठीक की गईं:
  • RenderScript के बिटकोड को एन्कोड करने से जुड़ी समस्या ठीक की गई. (समस्या 64775)
  • RenderScript में गणित के सिंबल न दिखने की समस्या को ठीक किया गया (समस्या 64110)

बिल्ड से जुड़ी अन्य समस्याएं ठीक की गईं:
  • Gradle की मदद से, NDK मोड में RenderScript को कंपाइल करने की सुविधा को ठीक किया गया.
  • dx बिल्ड में BufferOverflowException समस्या को ठीक किया गया. (समस्या 61710)

Android 4.4 (एपीआई लेवल 19) के लिए, बिल्ड टारगेट की सुविधा जोड़ी गई.

बिल्ड से जुड़ी कई छोटी समस्याएं ठीक की गईं.

RenderScript के सहायता मोड से जुड़ी समस्या ठीक की गई.

Android 4.3 (एपीआई लेवल 18) के लिए, बिल्ड टारगेट की सुविधा जोड़ी गई.

आरंभिक रिलीज़.

सामान्य जानकारी:
  • Android 4.2 (एपीआई लेवल 17) के लिए, बंडल टारगेट की सुविधा जोड़ी गई है.
  • Android SDK टूल के बिल्ड के हिसाब से बने कॉम्पोनेंट को, प्लैटफ़ॉर्म-टूल कॉम्पोनेंट से अलग कर दिया गया है, ताकि बिल्ड टूल को इंटिग्रेटेड डेवलपमेंट एनवायरमेंट (IDE) कॉम्पोनेंट से अलग से अपडेट किया जा सके.