ไม่พบ zip-align เมื่อเผยแพร่แอป


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.

นี่คือข้อความที่ฉันได้รับเมื่อพยายามเผยแพร่แอปของฉัน ฉันใช้ Android SDK Tools รุ่นล่าสุด (23 ซึ่งเปิดตัวในวันนี้) และ SDK Platform-tools (20 ซึ่งเปิดตัวในวันนี้ด้วย) ฉันได้รับ APK ออกมา แต่ถ้าฉันพยายามอัปโหลดไปยัง Google Play ฉันพบข้อผิดพลาดที่บ่นว่าไม่ได้จัดแนว zip

การรัน zipalign ช่วยแก้ไข apk ด้วยตนเอง แต่มีใครรู้บ้างว่าสาเหตุนี้คืออะไรและจะแก้ไขได้อย่างไร?


7
เครื่องมือ sdk ล่าสุด (23) ไม่ได้รับการบรรจุอย่างถูกต้อง ประสบปัญหากับเครื่องมือมากมายในรุ่นนี้
MeetM

คำตอบ:


223

ผมมีปัญหาเหมือนกัน. และเพื่อแก้ไขฉันคัดลอกไฟล์ Zipalign จากโฟลเดอร์ sdk / build-tools / android-4.4W ไปยัง sdk / tools /

แก้ไข:เนื่องจาก Google อัปเดต SDK สำหรับ Android เครื่องมือสร้างใหม่จะแก้ไขปัญหานี้ได้ ดังนั้นฉันจึงสนับสนุนให้ทุกคนอัปเดตเป็นAndroid SDK Build-tools 20ตามที่ Pang แนะนำในโพสต์ด้านล่าง


1
ต้องเป็นสำเนาของไฟล์ไม่ใช่ลิงก์สัญลักษณ์ใน OSX ฉันใช้ sym-link (ซึ่งโดยปกติเพียงพอแล้ว) แต่ก็ยังไม่พบ
SnowInferno

7
ฉันพบมันภายใต้ - sdk \ build-tools \
20.0.0

13
อย่าคัดลอก exe จากไดเร็กทอรีอื่น ใช้ SDK Manager เพื่อติดตั้ง SDK Build tools v20
darksider474

2
เมื่อใช้ ant build-release เราต้องเพิ่ม sdk.buildtools = 19.1.0 หรือ = 20.0.0 ให้กับ project.properties นอกจากนี้โปรดทราบว่าชุดคุณสมบัติ zipalign มีการเปลี่ยนแปลงใน ANT build.xml เพื่อชี้ไปที่เวอร์ชันของห่วงโซ่เครื่องมือ righ
david

10
ดังที่ได้กล่าวไว้ในบางคำตอบที่คุณต้องติดตั้ง Android SDK Build-tools Rev. 20 ฉันทำ แต่ยังคงได้รับข้อผิดพลาดเดียวกัน จากนั้นฉันต้องคัดลอก Zipalign จาก "sdk / build-tools / 20.0.0" เป็น "sdk / tools /"
Kevin

96

ฉันแก้ไขโดยการติดตั้ง Android SDK Build-tools 20:

ในEclipsePull Down MenuWindowAndroid SDK Managerให้ตรวจสอบAndroid SDK Build-tools Rev.20จากนั้นคลิกปุ่มInstall n package (s) …เพื่อเริ่มการติดตั้ง


26
ฉันต้องรีสตาร์ทคราสหลังจากทำสิ่งนี้
Cigogne Eveillée

Rev. 23.0.0 แก้ไขปัญหานี้ ... มีประโยชน์สำหรับรุ่นล่าสุด
Zala Janaksinh


8

ฉันตัดสินใจที่จะทำวิดีโอสำหรับสิ่งนี้ .. ฉันเอาแต่วางลงในเครื่องมือ แต่อนิจจามันไม่ได้ผลสำหรับฉัน ฉันย้ายไปที่ platform-tools แล้วทำการเผยแพร่ voila ทันที .. ต้องรีสตาร์ทคราสในภายหลัง

บทช่วยสอนสำหรับการแก้ไข zipalign ที่หายไป


1
ขอบคุณวิดีโอที่ยอดเยี่ยมสำหรับฉันมันใช้งานได้โดยการเพิ่ม zipalign ลงในเครื่องมือไม่ใช่เครื่องมือแพลตฟอร์ม
shimi_tap

ลิงก์นี้ช่วยฉันได้ แต่แทนที่จะย้าย zipalign.exe จาก build-tools ไปยัง platform-tools ฉันเพิ่งเพิ่มโฟลเดอร์ build-tools ที่ PATH env
Paul Samsotha

8

ฉันใช้เส้นทางเต็มของ zipalign สำหรับ mac ฉันพบไฟล์ปฏิบัติการใน Finder และคลิกที่มัน จากนั้นเพื่อเผยแพร่แอปของฉันฉันเรียกใช้

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

แทน

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

2
สำหรับ windows (เส้นทาง zipalign ของฉัน): 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'
Nadim

8

Mac / ลินุกซ์:

สิ่งนี้ใช้ได้ผลสำหรับฉัน (คุณอาจต้องการแทนที่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

หรือเพียงแค่ปิดเทอร์มินัลแล้วเริ่มใหม่อีกครั้ง


แก้ไขเพียงครั้งเดียว: คุณพลาด "ส่งออก" ในบรรทัดสุดท้าย :-)
Manan Shah

7

บน Mac ฉันทำสิ่งต่อไปนี้:

  1. ค้นหาบน o / s (ฉันดาวน์โหลดเครื่องมือสร้างสำหรับ 19 และ 20 แล้ว)

  2. กด Ctrl-Open เพื่ออนุญาตแอปจากอินเทอร์เน็ต

  3. ย้ายจากโฟลเดอร์ sdk / build-tools / android-4.4W ไปที่ sdk / tools / ต๊าย


4

ด้วยการอัปเดต SDK เป็น 20 เวอร์ชัน 20 ของเครื่องมือสร้างและแพลตฟอร์มและ 23 ของค่าผ่านทาง sdk Google ได้ย้ายหลายสิ่งหลายอย่าง

Gradle (หากคุณใช้ Android Studio) อย่างไรก็ตามยังไม่ได้รับการอัปเดตเพื่อแสดงการเปลี่ยนแปลงเหล่านั้นตามที่ระบุไว้ในคำตอบอื่น ๆ ที่คัดลอกzipalignไบนารีไป/sdk/tools/ควรทำเคล็ดลับในตอนนี้

อัปเดต:เนื่องจาก Android Studio 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.+'


จุดชี้แจงย้ายไบนารีจากโฟลเดอร์ android sdk ของคุณไปยังโฟลเดอร์ sdk ของ android studio ชอบ: C: \ Program Files (x86) \ Android \ android-sdk \ tools \ zipalign.exe ถึง C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G

Google ได้อัปเดต android studio (0.8.1) และปัญหาจะไม่เกิดขึ้นอีกต่อไปด้วยเวอร์ชันที่ใหม่กว่านี้
DooMMasteR

3

ตรวจสอบในตัวจัดการ SDK ว่าได้ติดตั้ง "build-tools" แล้ว ฉันอยู่ในสถานะเริ่มต้นไม่ได้ทำสิ่งนี้


3

หากคุณใช้ gradle เพียงแค่อัปเดตปลั๊กอิน ypur gradle!

เปลี่ยนบรรทัดใน build.gradle จาก:

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

ถึง:

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

มันใช้ได้กับฉัน

โปรดทราบว่าตัวแปร buildToolsVersion (สำหรับฉัน "20.0.0") ต้องตรงกับเวอร์ชัน build-tools ของคุณ

โชคดี :)



1

การแก้ไขของฉันทำงานคัดลอก zipalign.exe จากsdk \ build-tools \ android-4.4Wไปยังsdk \ platform-toolsดังที่แสดงในวิดีโอที่เชื่อมโยงโดย digiboomz และไม่สามารถคัดลอกใน sdk \ tools ได้


1

หากไม่พบคำสั่ง zipalign จาก Command-Line ให้เพิ่มเส้นทางไฟล์ของ zipalign ไปยังตัวแปรสภาพแวดล้อม ดังที่ได้กล่าวมาแล้วการเปลี่ยนตำแหน่งไฟล์ exe ไม่เป็นการดี

สำหรับผู้ใช้ Windows:

เพิ่ม 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

ฉันใช้ Eclipse และสิ่งนี้ขัดข้องระหว่างการอัปเดต นี่คือสิ่งที่ได้ผลสำหรับฉันเนื่องจากคำตอบข้างต้นไม่ได้ผล
ฉันตรวจสอบที่ที่คาดว่า build.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

ไดเร็กทอรีนี้สอดคล้องกับ 'Android SDK Build-tools' เวอร์ชันสูงสุดที่แสดงตามที่ติดตั้งใน 'Android SDK Manager' นั่นคือสิ่งที่ฉันคัดลอก zipalign.exe (ซึ่งฉันได้รับจากการติดตั้ง Android Studio!) และตอนนี้แอปที่ลงนามจะถูกลงชื่อโดยอัตโนมัติอีกครั้ง!


1

ฉันแก้ไขโดย RUN ในฐานะ Administrator @ SDK Manager.exe ของคุณในไดเรกทอรี C: \ Program Files \ Android SDK

หลังจากนั้นคุณจะได้รับเครื่องมือสร้างที่อัปเดตจากที่เก็บใด ๆ


1

ขั้นตอนในการแก้ไขปัญหานี้

  1. ติดตั้ง Android SDK Build-Tools เวอร์ชันล่าสุด
  2. ตรวจสอบว่า zipalign.exe มีอยู่ในโฟลเดอร์ android-sdk \ build-tools \ เช่น android-sdk \ build-tools \ 21.1.0 \
  3. ใน Android เวอร์ชันเก่าบางรุ่นคุณอาจไม่พบ zipalign.exe อย่าตกใจตรวจสอบเวอร์ชันอื่น ๆ ที่มี zipalign
  4. เปิดไฟล์ project.properties ของคุณและกำหนดค่า build-tools ให้ชี้ไปที่ zipalign.exe อยู่ เช่น sdk.buildtools = 21.1.0
  5. รีสตาร์ทคราสของคุณแล้วลองเอ็กซ์พอร์ตอีกครั้ง มันควรจะทำงาน

1

บน Mac ที่มี OSX 10.10.5 Android Studio และ SDK ที่ติดตั้งพา ธ คือ

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

1

งาน Zipalign gradle เลิกใช้งานแล้วตั้งแต่ Android Plugin for Gradle, Revision 2.2.0 (กันยายน 2016)

หากคุณต้องการใช้ต่อให้เพิ่ม android.useOldPackaging = true ลงในไฟล์ gradle.properties ของคุณ

คลิกที่นี่เพื่อดูคำอธิบายโดยละเอียด

ปรับปรุงประสิทธิภาพการสร้างโดยการใช้ไปป์ไลน์บรรจุภัณฑ์เริ่มต้นใหม่ซึ่งจัดการกับการบีบอัดการเซ็นชื่อและการกำหนดซิปในงานเดียว คุณสามารถเปลี่ยนกลับไปใช้เครื่องมือบรรจุภัณฑ์รุ่นเก่าได้โดยเพิ่ม android.useOldPackaging = true ลงในไฟล์ gradle.properties ของคุณ ในขณะที่ใช้เครื่องมือบรรจุภัณฑ์ใหม่งาน zipalignDebug จะไม่พร้อมใช้งาน อย่างไรก็ตามคุณสามารถสร้างได้ด้วยตัวเองโดยเรียกเมธอด createZipAlignTask (String taskName, File inputFile, File outputFile) ตอนนี้การลงนาม APK ใช้ APK Signature Scheme v2 นอกเหนือจากการลงนาม JAR แบบเดิม แพลตฟอร์ม Android ทั้งหมดยอมรับ APK ที่เป็นผลลัพธ์ การแก้ไข APK เหล่านี้หลังจากการลงนามจะทำให้ลายเซ็น v2 ของพวกเขาไม่ถูกต้องและป้องกันการติดตั้งบนอุปกรณ์ blockquote



0

ฉันแก้ไขโดยถอนการติดตั้ง Android SDK Platform (4.4W) แล้วติดตั้งใหม่ ฉันยังรีสตาร์ท Eclipse หลังจากการติดตั้ง


0

ในกรณีของฉัน SDK Build Tools 20 ได้รับการติดตั้งแล้ว ฉันคัดลอก zipalign.exe ในโฟลเดอร์ Tools แต่ไม่ประสบความสำเร็จ

หลังจากนั้นฉันสังเกตเห็นว่าฉันอัปเดต Eclipse โดยไม่ได้ลบหรือเปลี่ยนชื่อโฟลเดอร์เก่า

ดังนั้นฉันจึง:

1) เปลี่ยนชื่อโฟลเดอร์ Eclipse เก่า 2) รีสตาร์ท Eclipse

Eclipse ขอให้แก้ไขการตั้งค่า Android เนื่องจากปัญหาคือ Eclipse ซึ่งยังคงพยายามใช้โฟลเดอร์เก่า


0

Google แก้ไขข้อผิดพลาดนี้ด้วยเครื่องมือสร้างเวอร์ชัน: 23.0.3 ตอนนี้ zipalign ได้รับการบรรจุอย่างถูกต้องและทุกอย่างทำงานได้ดี


0

โดยปกติ zipalign.exe จะอยู่ใกล้กับ "ตัวจัดการ Android" (เช่น "Android", "Android SDK" เป็นต้น) ดังนั้นคุณสามารถค้นหา "Android Manager"ในการค้นหาของ windows และคลิกขวาเหนือคำสั่งและเปิด ตำแหน่งไฟล์ . คุณอาจอยู่ใน: บางสิ่งบางอย่าง \ Android \ หุ่นยนต์ SDK \ เครื่องมือ จากนั้นคือการกลับไปเพียงแค่จำเป็นโฟลเดอร์และไปที่Android \ หุ่นยนต์ SDK \ สร้างเครื่องมือ \ 23.0.3 zipalign อยู่ที่นั่นคุณอาจไม่สามารถใช้งานได้ด้วยการดับเบิลคลิกดังนั้นคุณต้องคัดลอกพา ธ ทั้งหมดของไฟล์zipalignเพื่อใช้ในCMDรหัสสุดท้ายที่คุณต้องป้อนจะเป็นดังนี้:

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 -> เลือก "Android SDK Build-Tools 28-rc1", จากนั้นใช้, คุณจะติดตั้งเครื่องมือสร้างและคุณจะพบ zipalign exe ใน SDK \ build-tools \ 28.0.0-rc1 หลังจากติดตั้ง
Richard Chan

คุณพูดถูกมันควรจะติดตั้ง แต่ไม่ได้ติดตั้งในกรณีของฉัน ฉันตรวจสอบแล้ว สูตรนี้เหมาะสำหรับผู้ที่ไม่มีไฟล์นี้หลังจากพยายามทุกครั้ง
โรมัน

0

ฉันได้แก้ไขปัญหานี้แล้วโดยทำสิ่งนี้:

เปิด Android Studio> ค่ากำหนด> เครื่องมือ SDK แล้วเลือก "Android SDK Build-Tools"

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