ล้มเหลว [INSTALL_FAILED_ALREADY_EXISTS] เมื่อฉันพยายามอัปเดตแอปพลิเคชันของฉัน


388

เมื่อฉันพยายามอัปเดต applcation ของฉันด้วยเวอร์ชันใหม่ที่มีลายเซ็นเหมือนกันกับรุ่นก่อนหน้าแสดงข้อผิดพลาดด้านบน

ฉันกำลังคิดถึงอะไร

คำตอบ:


756

หากคุณติดตั้งแอพลิเคชันบนอุปกรณ์ของคุณผ่านทางคุณควรมองหาตัวเลือกติดตั้งที่ควรจะเป็นadb install -rดังนั้นหากคุณadb install -rคุณควรจะสามารถติดตั้งได้โดยไม่ต้องถอนการติดตั้งมาก่อน


1
adb install -rใช้ไม่ได้เสมอ (ฉันมี EVO 4G จาก Sprint ที่ปฏิเสธที่จะทำงานตามที่คาดไว้) การแก้ไขที่ฉันพบเท่านั้นคือการลบแอปพลิเคชันออกด้วยตนเอง บางครั้งฉันก็ต้องทำผ่าน UI ของโทรศัพท์เพราะ EVO เจ้าอารมณ์
jww

21
ฉันมาที่นี่เพราะฉันต้องการทราบว่าadb install -rจะลบก่อนหรือไม่จากนั้นติดตั้งหรืออัปเกรดแอปของฉัน แม้ว่าadbคำอธิบายของจะไม่ชัดเจนมาก ( -r: แทนที่แอปพลิเคชันที่มีอยู่ ) แต่adb install -rจะอัปเกรดแอปของคุณและไม่ลบข้อมูลแอพของคุณ ดังนั้นจึงเหมาะที่จะทดสอบการอัปเกรดแอปของคุณ (ซึ่งเป็นข้อมูลที่ฉันต้องการ)
Thibault D.

8
สำหรับผู้ที่อ้างว่าadb install -rใช้งานไม่ได้: ฉันคิดว่า.apkไฟล์ที่คุณพยายามติดตั้งไม่ได้เซ็นชื่อด้วยใบรับรองนักพัฒนาซอฟต์แวร์เดียวกับ.apkไฟล์ที่ติดตั้งในอุปกรณ์ เกิดขึ้นได้ง่ายถ้าคุณติดตั้งแอพ Debug แล้วลองติดตั้งแอพ Release หรือวิธีอื่น ๆ คุณไม่สามารถอัปเดตแอปพลิเคชันหากไม่ได้ลงชื่อด้วยใบรับรองเดียวกัน
Thibault D.

1
หากคุณใช้หลายบัญชีคุณอาจต้องถอนการติดตั้งจากทุกบัญชี (ดูคำตอบของ GregP) สิ่งนี้ใช้ได้กับฉันหลังจากฉันทำอย่างนั้น
JD Sandifer

ไม่ทำงานแอปของฉันเป็นแอประบบและนี่ไม่ได้แก้ปัญหาของฉัน: /
htafoya

11

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

อย่างอื่นนี่คือสิ่งที่คุณสามารถทำได้:

  1. ถอนการติดตั้งแอปพลิเคชันจากอุปกรณ์: ไปที่การตั้งค่า -> จัดการแอปพลิเคชันและเลือกถอนการติดตั้งหรือ
  2. ถอนการติดตั้งแอพโดยใช้อินเตอร์เฟสบรรทัดคำสั่ง adb: พิมพ์ถอนการติดตั้ง adb หลังจากทำตามขั้นตอนนี้แล้วให้ลองติดตั้งแอปพลิเคชันอีกครั้ง

แอปของฉันไม่ได้มาอยู่ใต้เมนูหรือ app store - แต่พบว่าต้องขอบคุณเคล็ดลับของมูฮัมหมัด
DavidP

2
นี่ไม่ใช่ทางออกที่ดี จะเป็นอย่างไรถ้าคุณมีสถานะเป็นกลุ่มอย่างเช่น SharedPrefs บันทึกไว้ในแอป หากคุณถอนการติดตั้งอย่างหนักจากระบบคุณจะต้องกำหนดค่าแอพใหม่อีกครั้ง!
IgorGanapolsky

นี่คือทางออกที่ฉันต้องการadb uninstall my.package. มันไม่ได้ถอนการติดตั้ง prefs ที่ฉันต้องการลบ แต่มันก็กำจัดแพ็คเกจซึ่งเป็นสิ่งที่ทำให้ฉันไม่สามารถติดตั้งได้
JMD

6

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


นี่เป็นปัญหาที่แน่นอนของฉัน! พยายามถอนการติดตั้ง - ทั้งกับ adb และด้วยตนเอง แต่adb install <package.apk>ยังคงล้มเหลวแม้ว่าแอปจะไม่ปรากฏในรายการแอปอีกต่อไป ปรากฎว่ามันยังอยู่ในบัญชีอื่นบนอุปกรณ์ของฉัน ... ขอบคุณ!
JD Sandifer

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

3

ติดตั้ง

adb install -r exampleApp.apk

( -rทำให้มันแทนที่สำเนาที่มีอยู่เพิ่ม-sถ้าติดตั้งบนตัวจำลอง)

ตรวจสอบให้แน่ใจ app ที่มีการลงนามเดียวกันและเป็นเหมือนdebug/releaseที่แตกต่าง

โบนัส

ฉันตั้งค่านามแฝงในของฉัน~/.bash_profileเพื่อให้เป็นคำสั่ง 2char

alias bi="gradlew && adb install -r exampleApp.apk"

(ย่อมาจาก Build และติดตั้ง)


0

หากคุณยังประสบปัญหาอยู่ให้ลองถอนการติดตั้งแอปพลิเคชันโดยใช้คำสั่ง เพียงแค่เพิ่มคำสั่งadb uninstall com.example.yourpackagename จากนั้นลองติดตั้งอีกครั้งมันใช้งานได้!


0

ด้วยแท็บเล็ต Android 5 ทุกครั้งที่ฉันพยายามใช้ adb เพื่อติดตั้ง apk ที่ลงนามแล้วฉันจะได้รับ [INSTALL_FAILED_ALREADY_EXISTS]ข้อผิดพลาด

ฉันต้องถอนการติดตั้งแพคเกจการแก้ปัญหาก่อน แต่ฉันไม่สามารถถอนการติดตั้งโดยใช้อุปกรณ์ได้ Application Manager !

หากถอนการติดตั้งเวอร์ชันดีบักด้วยApplication Managerแล้วฉันต้องเรียกใช้งานตัวสร้างการดีบักอีกครั้งจาก Android Studio จากนั้นถอนการติดตั้งโดยใช้adb uninstall com.example.mypackagename

ในที่สุดฉันสามารถใช้adb install myApp.apkเพื่อติดตั้ง apk รุ่นที่ลงนามแล้ว

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