एप्लिकेशन प्रकाशित करते समय ज़िप-संरेखित नहीं कर सकते


123
cannot.find.zip.align=The zipalign tool was not found in the SDK.

Please update to the latest SDK and re-export your application
or run zipalign manually.

Aligning applications allows Android to use application resources
more efficiently.

यह संदेश मुझे तब मिला जब मैंने अपना ऐप प्रकाशित करने का प्रयास किया। मैं एंड्रॉइड एसडीके टूल्स (23 जिसे आज जारी किया गया था) और एसडीके प्लेटफॉर्म-टूल्स (20 जिसे आज भी जारी किया गया था) के नवीनतम संशोधन का उपयोग कर रहा हूं। मुझे इसमें से एक एपीके मिला, लेकिन अगर मैंने इसे Google Play पर अपलोड करने का प्रयास किया तो मुझे एक शिकायत मिली कि यह ज़िप संरेखित नहीं है।

रनिंग zipalign मैन्युअल रूप से एपीके को ठीक करता है, लेकिन क्या किसी को पता है कि यह क्या कारण है और इसे कैसे ठीक करें?


7
नवीनतम sdk टूल्स (23) को ठीक से पैक नहीं किया गया है। इस रिलीज पर कई उपकरणों के साथ समस्याओं का सामना करना पड़ा।
मीटम

जवाबों:


223

मुझे भी यही समस्या थी। और इसे ठीक करने के लिए, मैं sdk / build-tools / android-4.4W फ़ोल्डर से sdk / / के लिए Zipalign फ़ाइल की प्रतिलिपि बनाता हूं

संपादित: चूंकि Google ने Android के लिए SDK को अपडेट किया था, इसलिए नए बिल्ड-टूल्स इस समस्या को ठीक करते हैं। इसलिए मैंने सभी को Android SDK Build-tools 20 को अपडेट करने के लिए प्रोत्साहित किया, जैसा कि नीचे दिए गए पोस्ट में पैंग द्वारा सुझाया गया है।


1
यह फ़ाइल की एक प्रति होनी चाहिए और OSX में एक प्रतीकात्मक लिंक नहीं होना चाहिए। मैंने एक सिम-लिंक का उपयोग किया (जो आमतौर पर पर्याप्त है) और यह अभी भी नहीं मिला था।
स्नोइन्फोर्नो

7
मैंने इसे अंडर - sdk \ build-tools \ 20.0.0
shimi_tap

13
निर्गमन को किसी अन्य निर्देशिका से कॉपी न करें। SDK बिल्ड टूल v20
darksider474

2
चींटी बिल्ड-रिलीज़ का उपयोग करते समय, किसी को प्रोजेक्ट.प्रोसेसरी में sdk.buildtools = 19.1.0 या = 20.0.0 जोड़ने की आवश्यकता होती है। यह भी ध्यान दें कि rip टूल चेन संस्करण पर इंगित करने के लिए ANT build.xml में zipalign गुण सेट किए गए हैं।
दाविद

10
जैसा कि कुछ जवाबों में उल्लेख किया गया है कि आपको Android SDK बिल्ड-टूल्स Rev. 20 को स्थापित करने की आवश्यकता है। मैंने किया। लेकिन फिर भी वही त्रुटि हो रही है। फिर मुझे "sdk / build-tools / 20.0.0" से Zipalign को "sdk / tools /" में कॉपी करना होगा
केविन

96

मैंने इसे एंड्रॉइड एसडीके बिल्ड-टूल्स 20 स्थापित करके तय किया:

में ग्रहणपुल डाउन मेनूविंडोएंड्रॉयड एसडीके प्रबंधक , जाँच Android SDK बिल्ड-उपकरण रेव 20 , उसके बाद स्थापित n पैकेज (रों) ... बटन इंस्टॉल शुरू करने के लिए।


26
मुझे ऐसा करने के बाद ग्रहण को फिर से शुरू करना पड़ा
Cigogne Eveillée

रेव। 23.0.0 इस मुद्दे को ठीक करें ... यह नवीनतम बिल्ड के लिए उपयोगी है
ज़ला जनकसिंह

20

यदि आप स्थापित करते हैं तो यह प्रयोग करने योग्य हो जाता है

Android SDK Build-tools Rev.20

8

मैंने इसके लिए सिर्फ एक वीडियो बनाने का फैसला किया..मैं इसे टूल्स में पेस्ट करता रहा लेकिन अफसोस जो मेरे लिए काम नहीं कर रहा था। मैंने इसे प्लेटफ़ॉर्म-टूल्स और वॉयला पब्लिशिंग में तुरंत स्थानांतरित कर दिया..इसके बाद ग्रहण पुनः आरंभ करें।

गुम ज़िपलाइन को ठीक करने के लिए ट्यूटोरियल


1
महान वीडियो धन्यवाद, मेरे लिए इसने उपकरण और नहीं प्लेटफ़ॉर्म टूल्स के लिए
zeepign

इस लिंक ने मेरी मदद की, लेकिन बिल्ड-टूल्स से प्लेटफॉर्म-टूल्स तक zipalign.exe को स्थानांतरित करने के बजाय, मैंने सिर्फ निर्माण उपकरण फ़ोल्डर को PATH env
पॉल समसोथा

8

मैंने zeepign का पूरा रास्ता इस्तेमाल किया। मैक के लिए, मैंने फाइंडर में निष्पादन योग्य फ़ाइल पाया और उस पर क्लिक किया। फिर, अपना ऐप प्रकाशित करने के लिए मैं दौड़ा

/Users/username/development/sdk/tools/zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk

के बजाय

zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk

2
खिड़कियों के लिए (मेरा zeepign पथ): C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe मेरा उदाहरण cmd& 'C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe' -v 4 './platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk' './platforms/android/app/build/outputs/apk/release/app-release-signed.apk'
नादिम

8

मैक / लिनक्स:

इसने मेरे लिए काम किया (आप अपने बिल्ड टूल्स के संस्करण के साथ 22.0.1 को बदलना चाह सकते हैं ):

संपादित करें: ~ / .bashrc

export ANDROID_HOME=~/Android/Sdk/
export ANDROID_TOOLS=~/Android/Sdk/tools/
export ANDROID_BUILD_TOOLS=~/Android/Sdk/build-tools/22.0.1/
export ANDROID_PLATFORM_TOOLS=~/Android/Sdk/platform-tools/
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS:$ANDROID_BUILD_TOOLS

और भाग खड़ा हुआ:

source ~/.bashrc

या बस टर्मिनल बंद करें और इसे फिर से शुरू करें।


सिर्फ एक संपादन: आप अंतिम पंक्ति में "निर्यात" से चूक गए। :-)
मनन शाह

7

एक मैक पर, मैंने निम्नलिखित किया:

  1. इसे ओ / एस पर खोजें (मैंने पहले से ही 19 और 20 के लिए बिल्ड टूल डाउनलोड कर लिया था)

  2. इंटरनेट से ऐप्स को अनुमति देने के लिए Ctrl-Open दबाएं

  3. इसे sdk / build-tools / android-4.4W फ़ोल्डर से sdk / tools / में ले जाएँ। वाह।


4

एसडीके अपडेट के साथ 20, बिल्ड और प्लेटफॉर्म टूल्स के संस्करण 20 और एसडीके टोल के 23 के साथ, Google ने बहुत सी चीजों को स्थानांतरित कर दिया है।

ग्रैडल (यदि आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं) हालांकि अभी तक उन परिवर्तनों को प्रतिबिंबित करने के लिए अपडेट नहीं किया गया है, जैसा कि अन्य उत्तरों में कहा गया है कि zipalignबाइनरी की नकल /sdk/tools/करने के लिए अब ट्रिक करना चाहिए।

अद्यतन: चूंकि एंड्रॉइड स्टूडियो 0.8.1 को जारी किया गया मुद्दा अब तय हो गया है ...
आपको केवल अपना अपडेट करने की आवश्यकता है build.gradleऔर इसे फिर से ठीक करना चाहिए

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

और यदि आप किसी भी कॉम्पिटिटर या समर्थन पुस्तकालय का उपयोग करते हैं

compile 'com.android.support:appcompat-v7:20.+'

compile 'com.android.support:support-v4:20.+'


स्पष्टीकरण का बिंदु, अपने एंड्रॉइड एसडीके फ़ोल्डर से बाइनरी को एंड्रॉइड स्टूडियो के एसडीके फ़ोल्डर में स्थानांतरित करें। जैसे: C: \ Program Files (x86) \ Android \ android-sdk \ Tools \ zipalign.exe to C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
जोशुआ

Google ने एंड्रॉइड स्टूडियो (0.8.1) को अपडेट किया है और इस नए संस्करण के साथ अब और समस्याएं नहीं होती हैं
डूममैस्टरआर जूल

3

एसडीके प्रबंधक में जांचें कि उसने "बिल्ड-टूल्स" स्थापित किया है। इसकी डिफ़ॉल्ट स्थिति में मेरा, यह नहीं किया।


3

यदि आप ग्रेडेल का उपयोग कर रहे हैं तो बस ypur gradle plugin को अपडेट करें!

बिल्ड लाइन में परिवर्तन करें। से निम्न करें:

classpath 'com.android.tools.build:gradle:0.9.+'

सेवा:

classpath 'com.android.tools.build:gradle:0.11.+'

इससे मेरा काम बनता है।

ध्यान दें कि चर buildToolsVersion (मेरे लिए "20.0.0") बिल्ड-टूल्स के आपके संस्करण से मेल खाना चाहिए।

सौभाग्य :)


2

एंड्रॉइड स्टूडियो 1.0 के साथ आपको उपयोग करना होगा zipAlignEnabled true


1

मेरे ठीक से zipalign.exe को कॉपी काम किया एसडीके \ निर्माण उपकरण \ android-4.4W के लिए एसडीके \ मंच उपकरण के रूप में digiboomz से जुड़े हुए वीडियो में दिखाया, और काम SDK में यह \ को कॉपी उपकरण नहीं था


1

अगर कमांड लाइन से zipalign कमांड नहीं मिलती है, तो पर्यावरण वेरिएबल्स के लिए zeepign का फाइल पथ जोड़ें। जैसा कि ऊपर उल्लेख किया गया है, यह exe फ़ाइल स्थान बदलने के लिए अच्छा नहीं है।

विंडोज उपयोगकर्ताओं के लिए:

में जोड़े User->PATH->"path to zipalign folder"

मेरे मामले में यह रास्ता था C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W। उस फ़ोल्डर में zipalign.exe है

यह लिंक आपको पथ सेट करने और इसे समझने में सहायता कर सकता है http://www.voidspace.org.uk/python/articles/command_line.shtml#path


1

मैं ग्रहण का उपयोग करता हूं और यह एक अद्यतन के दौरान टूट गया। यहाँ मेरे लिए क्या काम किया क्योंकि ऊपर दिए गए उत्तर नहीं थे।
मैंने जाँच की कि चींटी के बिल्ड। Xml को zipalign.exe कहाँ मिलता है।

में: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign के रूप में परिभाषित किया गया है:

<property name="zipalign" location="${android.build.tools.dir}/zipalign${exe}" />

जो इसके अपेक्षित संकेत देता है:

C:\Development\Android\android-sdk\build-tools\18.0.1

यह निर्देशिका 'एंड्रॉइड एसडीके बिल्ड-टूल्स' के उच्चतम संस्करण से मेल खाती है जिसे 'एंड्रॉइड एसडीके मैनेजर' में इंस्टॉल किया गया है। तो, यह वह जगह है जहाँ मैंने zipalign.exe की प्रतिलिपि बनाई है (जो कि मैंने एक Android स्टूडियो इंस्टॉलेशन से प्राप्त किया है!) और हस्ताक्षर किए गए ऐप्स अब स्वचालित रूप से फिर से रिप्लाई किए गए हैं!


1

मैंने निर्देशिका C: \ Program Files \ Android SDK में प्रशासक @ आपके SDK Manager.exe के रूप में RUN द्वारा हल किया

उसके बाद आपको अपडेट बिल्ड टूल्स किसी भी रिपॉजिटरी में मिलेंगे


1

इसे ठीक करने के लिए कदम,

  1. Android एसडीके बिल्ड-टूल्स का नवीनतम संस्करण स्थापित करें
  2. जाँच करें कि क्या zipalign.exe फ़ोल्डर में उपलब्ध है android-sdk \ build-tools \ eg android-sdk \ build-tools \ 21.1.0 \
  3. Android के कुछ पुराने संस्करण में आपको zipalign.exe नहीं मिल सकता है। घबराइए नहीं, किसी भी अन्य फैसले की जांच करें जिसमें ज़िपलाइन उपलब्ध हो।
  4. अपनी परियोजना खोलें। प्रोपेर्टीज़ फ़ाइल और बिल्ड-टूल्स को कॉन्फ़िगर करने के लिए इंगित करें जिसमें zipalign.exe मौजूद है। उदा। sdk.buildtools = 21.1.0।
  5. अपने ग्रहण को पुनः प्रारंभ करें और फिर से निर्यात करने का प्रयास करें। यह काम करना चाहिए।

1

OSX 10.10.5 के साथ एक मैक पर, Android Studio और SDK ने पथ स्थापित किया है

/Users/mles/Library/Android/sdk/build-tools/23.0.1/zipalign

1

ग्रिपल, रिविजन 2.2.0 (सितंबर 2016) के लिए एंड्रॉइड प्लगिन के बाद से Zipalign gradle कार्य को हटा दिया गया है।

यदि आप इसका उपयोग करते रहना चाहते हैं, तो android.useOldPackaging = true को अपनी gradle.properties फ़ाइल में जोड़ें।

विस्तृत विवरण के लिए यहां क्लिक करें

एक नई डिफ़ॉल्ट पैकेजिंग पाइपलाइन को अपनाने से प्रदर्शन में सुधार होता है, जो एक कार्य में ज़िपिंग, हस्ताक्षर और zeepigning संभालती है। आप android.useOldPackaging = true को अपनी gradle.properties फ़ाइल में जोड़कर पुराने पैकेजिंग टूल का उपयोग करने से पीछे हट सकते हैं। नए पैकेजिंग टूल का उपयोग करते समय, zipalignDebug कार्य उपलब्ध नहीं है। हालाँकि, आप createZipAlignTask (स्ट्रिंग टास्कनाम, फ़ाइल इनपुट फ़ाइल, फ़ाइल आउटपुट फ़ाइल) विधि को कॉल करके स्वयं बना सकते हैं। एपीके साइनिंग अब पारंपरिक JAR साइनिंग के अलावा एपीके सिग्नेचर स्कीम v2 का उपयोग करता है। सभी एंड्रॉइड प्लेटफ़ॉर्म परिणामी APK को स्वीकार करते हैं। हस्ताक्षर करने के बाद इन APKs में कोई संशोधन उनके v2 हस्ताक्षरों को अमान्य कर देता है और उपकरण पर स्थापना को रोकता है। Blockquote


0

zipalignले जाया गया था build-tools\19.1.0और build-tools\20.0.0, मुझे लगता है कि आप में उनमें से एक का उपयोग करना चाहिए अपने लक्ष्य एसडीके की निर्भर


0

मैंने इसे एंड्रॉइड एसडीके प्लेटफ़ॉर्म (4.4W) की स्थापना रद्द करके और फिर इसे पुनर्स्थापित करके तय किया। मैंने भी स्थापना के बाद ग्रहण को फिर से शुरू किया।


0

मेरे मामले में एसडीके बिल्ड टूल्स 20 पहले से ही स्थापित थे। मैंने टूल फ़ोल्डर में zipalign.exe की नकल की, लेकिन सफलता के बिना।

उसके बाद मैंने देखा कि मैंने पुराने फ़ोल्डर को हटाए या नाम बदले बिना ग्रहण को अपडेट किया।

तो मैंने किया:

1) पुराने ग्रहण फ़ोल्डर का नाम बदला 2) पुनः आरंभ ग्रहण

ग्रहण ने एंड्रॉइड वरीयताओं को सही करने के लिए कहा क्योंकि समस्या ग्रहण थी, जो अभी भी पुराने फ़ोल्डर का उपयोग करने की कोशिश कर रहा था


0

Google इस त्रुटि को बिल्ड टूल संस्करण के साथ ठीक करता है: 23.0.3 अब zipalign को ठीक से पैक किया गया है, और सब कुछ ठीक काम करता है।


0

आम तौर पर zipalign.exe "एंड्रॉइड मैनेजर" (भी, "एंड्रॉइड", "एंड्रॉइड एसडीके" आदि) के करीब है, इसलिए आप विंडोज़ सर्च में "एंड्रॉइड मैनेजर" की खोज कर सकते हैं और कमांड के ऊपर एक righ- क्लिक करें और खोलें फ़ाइल स्थान । आप शायद इसमें हैं: something \ Android \ android-sdk \ Tools । फिर बस आवश्यक है कि एक फ़ोल्डर वापस करें और Android \ android-sdk \ build-tools \ 23.0.3 पर जाएं । Zipalign वहाँ है, आप शायद इसे डबल-क्लिक के साथ उपयोग करने में सक्षम नहीं हैं, इसलिए आपको CMD में उपयोग करने के लिए zipalign फ़ाइल के सभी पथ को कॉपी करना होगा , अंतिम कोड जिसे आपको इनपुट करना है वह कुछ इस तरह होगा:

C: \ Users \ heitor \ AppData \ Local \ Android \ android-sdk \ build-tools \ 23.0.1 \ zipalign.exe -v 4 android.apk android2.apk


0

जब मैं पूरी तरह से हताश था, तो मैंने निम्नलिखित कार्य किया, जिसने मुझे आधिकारिक zipalign.exe खोजने की अनुमति दी । संक्षिप्त उत्तर आधिकारिक (लेकिन सार्वजनिक नहीं) साइट के भाग से लिंक का उपयोग करना है:

https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip

यदि आप 2018 के बाद इस रसीद का उपयोग करते हैं, तो आपको संभवतः पूर्ण स्पष्टीकरण की आवश्यकता है:

  1. Android Studio खोलें और जाएं

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. टेक्स्ट एडिटर लिंक में लिखें और इसे ब्राउज़र में खोलें। मेरे मामले में पहली कड़ी ने मेरे लिए काम किया:

    https://dl.google.com/android/repository/repository2-1.xml
  3. नवीनतम पैकेज बिल्ड-टूल्स देखें। मेरे मामले में, यह build-tools_r28-rc1-windows.zip था , लेकिन आप अपने समय में नवीनतम पा सकते हैं

    Ctrl+F build-tools_
  4. URL में पाया गया जैसे मैंने पाया पैकेज नाम के साथ अंतिम भाग:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. पैकेज डाउनलोड करें, इसे अनज़िप करें और सौभाग्य से आधिकारिक फ़ाइल खोजें:

    zipalign.exe

यदि यह आपकी मदद करता है, तो आपकी प्रतिक्रिया वेलकम है।


Android Studio-> Tools-> Android-> SDK Manager-> Android SDK -> SDK Tools -> check "Android SDK Build-Tools 28-rc1"-फिर आवेदन करें will आप बिल्ड टूल्स को इंस्टॉल कर लेंगे, और आप Peepign पा सकते हैं। स्थापित करने के बाद SDK \ build-tools \ 28.0.0-rc1 में exe।
रिचर्ड चान

आप सही हैं, इसे स्थापित किया जाना चाहिए, लेकिन मेरे मामले में स्थापित नहीं किया गया था। मैंने जाँचा। यह नुस्खा उन लोगों के लिए है जिनके पास सभी प्रयासों के बाद यह फ़ाइल नहीं है।
रोमन

0

मैंने यह करके यह समस्या ठीक की है:

एंड्रॉइड स्टूडियो खोलें> वरीयताएँ> एसडीके टूल्स और "एंड्रॉइड एसडीके बिल्ड-टूल्स" की जांच करें

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