ไม่ได้ติดตั้งแอป Android มีการติดตั้งแพ็กเกจที่มีอยู่โดยใช้ชื่อเดียวกันพร้อมลายเซ็นที่ขัดแย้งกันแล้ว


131

ในโปรแกรมจำลองของฉันเมื่อฉันพยายามอัปเกรด apk โดยทางโปรแกรม ฉันเข้าใจ:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

ป้อนคำอธิบายภาพที่นี่

ฉันยังอยู่ในขั้นตอนการทดสอบของการอัปเกรดนี้ดังนั้นไฟล์ที่ฉันดาวน์โหลดจึงเป็น apk ที่ลงชื่อของเวอร์ชันก่อนหน้าซึ่งฉันคิดว่าน่าจะใช้งานได้โดยไม่มีปัญหาใด ๆ

จากคำแนะนำใน: แพ็คเกจที่มีอยู่โดยใช้ชื่อเดียวกันพร้อมลายเซ็นคอนฟิลถูกติดตั้งแล้วฉันพยายามเรียกใช้โปรแกรมจำลองทั้งในโหมดดีบักและในโหมดปกติ ...

มีความคิดเกี่ยวกับสิ่งที่ฉันขาดหายไปหรือไม่?


1
ใช้ลายเซ็นเดียวกันเพื่อลงนาม apk ก่อนการติดตั้ง
Praveen Sharma

ปัญหานี้เกิดขึ้นเนื่องจากลายเซ็นหรือไฟล์ที่เก็บคีย์ไม่ตรงกันค้นหาลิงก์สำหรับวิธีแก้ไข: readyandroid.wordpress.com/…
พร้อม Android

คำตอบ:


97

ปัญหาคือคีย์ที่ใช้ในการลงนาม APK โดยค่าเริ่มต้นหากคุณเรียกใช้โดยตรงจาก IDE ของคุณและเปิดโปรแกรมจำลองของคุณ APK ที่ติดตั้งในโปรแกรมจำลองจะได้รับการลงนามด้วยรหัสแก้ปัญหาของคุณ (โดยปกติจะติดตั้งใน ~ / .android /debug.keystore) ดังนั้นหาก APK ก่อนหน้านี้ลงนามด้วยคีย์อื่นนอกเหนือจากที่คุณใช้อยู่คุณจะได้รับความขัดแย้งของลายเซ็นเสมอเพื่อแก้ไขให้แน่ใจว่าคุณใช้คีย์เดียวกันในการลงนาม APK ทั้งสองแม้ว่า APK ก่อนหน้าจะลงนามด้วย debug-key จาก SDK อื่นคีย์จะแตกต่างกันอย่างแน่นอน

นอกจากนี้หากคุณไม่ทราบแน่ชัดว่าใช้คีย์ใดก่อนเพื่อลงนาม apk แต่คุณต้องการติดตั้งแอปเวอร์ชันใหม่คุณสามารถถอนการติดตั้งแอปพลิเคชันก่อนหน้านี้และติดตั้งใหม่ได้

หวังว่านี่จะช่วยได้ ...

ความนับถือ!


ฉันจะทำ non dev ลงนาม apk และทำการดาวน์โหลด / ติดตั้งด้วยตนเองภายในโปรแกรมจำลอง จากนั้นโปรแกรมจำลองควรดาวน์โหลด apk อื่น ๆ ที่ไม่ได้ลงนาม dev และลองทำการอัปเกรด หากได้ผลฉันจะยอมรับคำตอบของคุณ Thx
James Oravec

@MartinCazares อยู่ที่นั่นเพื่อรับคีย์ apk หรือไม่? ดังนั้นฉันจะไม่สูญเสียข้อมูลแอพของฉัน?
heisenberg

ถ้าคุณติดตั้งแอพคุณควรมีคีย์ไม่งั้นคุณจะเซ็น apk ได้อย่างไร? หากคุณไม่ได้สร้าง apk ก่อนหน้านี้คุณจะต้องขอคีย์ไปยังนักพัฒนาของ apk นั้นนอกจากนั้นจะไม่มีทางรับคีย์ที่ใช้ในการลงนาม apk ...
Martin Cazares

ขอบคุณมากสำหรับสิ่งนี้! คุณช่วยวันของฉันและทีมของฉัน! Haha
perozzo

1
ฉันมีแอปพลิเคชันใน LIVE ใน playstore ตอนนี้ฉันติดตั้งแอปนั้นไว้ในอุปกรณ์ทดสอบและตอนนี้สำหรับการอัปเดตแอปเวอร์ชันใหม่ฉันกำลังอัปเดต "versionno" และ "versionname" ในไฟล์ build.gradle ของแอป ตอนนี้ฉันได้สร้างรุ่นที่มีรหัสที่ลงนามแล้วในขณะที่ฉันพยายามติดตั้งบิลด์นั้นผ่านข้อผิดพลาด ::: มีการติดตั้ง pacakage ที่มีอยู่โดยใช้ชื่อเดียวกันพร้อมลายเซ็นที่ขัดแย้งกันแล้ว และไม่ได้รับการติดตั้งด้วย. กรุณาช่วย.
Tarit Ray

195

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

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


2
ฉันต้องเลื่อนจาก "ดาวน์โหลดแล้ว" ไปที่รายการ "ทั้งหมด" เพื่อค้นหาในรายการแอป
ShawnFeatherly

1
ตามที่คุณพูดถึงตรวจสอบให้แน่ใจว่าคุณเลื่อนลงไปด้านล่างจนสุด - แอปที่ "ไม่ได้ติดตั้ง" จะไม่แสดงตามลำดับตัวอักษร
jmcmann

3
ขอบคุณ!!! นี่เป็นปัญหาของฉันหลังจากที่ยืม Nexus 7 ทดสอบให้เพื่อน คิดว่าคีย์ของฉันเสียหาย ... ฉันลบผู้ใช้คนนั้นออกเพื่อลดความสับสนในอนาคต
mm2001

1
ประหยัดเวลาของฉัน ความรุ่งโรจน์
Piyush Patel

2
ขอบคุณ ฉันต้องเข้าสู่ระบบในผู้ใช้ทั้งหมดและถอนการติดตั้ง 1 โดย 1
Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

ป้อนคำอธิบายภาพที่นี่

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


สิ่งนี้ช่วยฉันได้ - ขอบคุณ ด้วยเหตุผลบางประการฉันมีแอปของฉันสองเวอร์ชันปรากฏขึ้นที่นั่นแม้ว่าจะถอนการติดตั้งผ่านหน้าจอหลัก
Joro Tenev

ขอบคุณ Joro Tenev โหวตฉัน
Keshav Gera

6

หากคุณไม่ต้องการกังวลกับไฟล์ที่เก็บคีย์ให้ลบแพ็คเกจออกทั้งหมดสำหรับผู้ใช้ทั้งหมด

เชื่อมต่ออุปกรณ์ของคุณกับ Mac / PC และเรียกใช้ adb uninstall <package>

ทำงานให้ฉัน

อ้างอิง: /android/92025/how-to-completely-uninstall-an-app-on-android-lollipop


5

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


ฉันจะสร้าง apk ที่ไม่ได้ลงนามและดาวน์โหลด apk ที่ไม่ได้ลงชื่อและดูว่าสามารถแก้ปัญหาได้หรือไม่ถ้าเป็นเช่นนั้นฉันสามารถทดสอบ apks ที่ลงชื่อด้วยฮาร์ดแวร์ได้ ฉันจะยอมรับคำตอบหากเป็นกรณีนี้
James Oravec

ฉันกำลังพยายามอัปเกรดจากในโปรแกรมของฉันดังนั้นการถอนการติดตั้ง / ติดตั้งด้วยตนเองจะไม่ได้ผล
James Oravec

app not installedเมื่อผมไม่แอปได้รับการรับรองการติดตั้งผมก็จะได้รับ ฉันตรวจสอบการตั้งค่าโปรแกรมจำลองและAllow installation of apps from unknown sourcesตรวจสอบแล้ว นี่ดูเหมือนจะไม่ใช่วิธีแก้ปัญหา
James Oravec

ให้คุณโหวตข้อเสนอแนะ ฉันคิดว่ามันช่วยให้เราไปถึงทางออกสุดท้าย ขอบคุณ!
James Oravec

5

หากคุณใช้ debug apk คีย์ที่ใช้ในการลงชื่อเข้าใช้

C:\Users\<user>\.android\debug.keystore

หากคุณใช้คีย์เดียวกันไม่ควรมีข้อขัดแย้งเมื่อทำการติดตั้ง


ขอบคุณมาก Santiago วันที่แล้วฉันเปลี่ยนฮาร์ดไดรฟ์ของเครื่องจากไดรฟ์เชิงกลเป็นไดรฟ์ Solid State ดังนั้นฉันจึงต้องอัพเกรด Windows ของฉันฉันประสบปัญหาเดียวกันจากนั้นฉันคัดลอกไฟล์ debug.keystore จากโฟลเดอร์ windows ก่อนหน้าไปยังโฟลเดอร์ใหม่ โฟลเดอร์ windows ปัญหาได้รับการแก้ไข :)
Arslan Sohail

ขอบคุณสำหรับคำตอบเพราะมันช่วยแก้ปัญหาของฉันได้จริงฉันกำลังเขียนโปรแกรมกับเพื่อนและเรามีปัญหานี้บ่อยๆตอนนี้เรากำลังแชร์คีย์การแก้ไขข้อบกพร่องทุกอย่างเรียบร้อยดี
Gustavo Magalhães

5

หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับคุณคุณอาจต้องทำสิ่งต่อไปนี้ ..

1) การติดตั้งแอพจาก Appstore
2) อัปเดตด้วยลงชื่อ APK ที่มีชื่อแพ็กเกจเดียวกันเวอร์ชันอัปเดต

โดยพื้นฐานแล้วจะมีสองประเภทหากเป็น APK

1) คุณอัปโหลดบน playstore ที่เรียกว่า APK ดั้งเดิม
2) ดาวน์โหลดจาก playstore ที่เรียกว่า APK ที่ได้รับ

ในกรณีนี้โดยทั่วไปคุณกำลังดาวน์โหลด apk ที่ได้รับและอัปเดตด้วย APK ดั้งเดิม

เพื่อให้มันใช้งานได้ดีอัปโหลด APK ใหม่ที่มีการเซ็นชื่อในโหมดทดสอบภายในบน Google Play Store และดาวน์โหลด APK ที่ได้รับเพื่อตรวจสอบสถานการณ์การอัปเดต

ป้อนคำอธิบายภาพที่นี่


2

หากคุณใช้ผู้ใช้หลายคนใน Android ให้ตรวจสอบว่ามีการถอนการติดตั้งแอปทุกที่


คล้ายกับคำตอบยอดนิยมstackoverflow.com/a/20084044/4136325ด้านบนคุณไม่คิดเหรอ?
Thomas Weller

1
ใช่นี่คือเคล็ดลับ - การถอนการติดตั้งแอปสำหรับผู้ใช้ทุกคน
Martin Koubek

1

ฉันมีปัญหาที่ทั้ง debug และ release build ไม่ติดตั้งบนอุปกรณ์ที่ฉันใช้ในการดีบัก ข้อความเดียวกันนี้จะปรากฏขึ้นเมื่อพยายามติดตั้งเวอร์ชันใหม่ วิธีแก้ปัญหาเดียวคือถอนการติดตั้งเวอร์ชันปัจจุบันและติดตั้งเวอร์ชันใหม่

ดูเหมือนว่า Android studio จะทำเครื่องหมาย apk ที่ติดตั้งเพื่อให้การติดตั้งโดยใช้ตัวจัดการแพ็คเกจจะแยกความแตกต่างระหว่างเวอร์ชันที่ติดตั้งสำหรับการดีบักและเวอร์ชันที่ดาวน์โหลดจาก Google Play หรือแหล่งข้อมูลภายนอกอื่น ๆ (สิ่งนี้ไม่เคยเกิดขึ้นกับฉันเมื่อใช้ eclipse)


1

อาจเป็นเพราะแอปพลิเคชันไม่สามารถถอนการติดตั้งได้สำเร็จ หากอุปกรณ์ของคุณเป็นกรณีนี้คุณสามารถลองใช้วิธีนี้ได้

ขั้นแรกให้รับชื่อแพ็กเกจของแอปพลิเคชันเช่น 'com.xxx.app' คุณสามารถใช้ Root Explorer และค้นหาได้จากไฟล์ Manifest (RE สามารถถอดรหัสไฟล์ได้) จากนั้นคุณสามารถใช้สคริปต์นี้เพื่อถอนการติดตั้ง:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

ข้อผิดพลาดของแพ็คเกจเดียวกัน:

  1. สร้างแพ็คเกจใหม่ในแอปของคุณด้วยชื่ออื่น
  2. คัดลอกและวางไฟล์ทั้งหมดในแพ็คเกจเก่าของคุณไปยังแพ็คเกจใหม่
  3. บันทึกรหัส
  4. ลบแพ็คเกจเก่าและทำความสะอาดและสร้างโครงการใหม่

1. มาก 2. สั้น 3. สามารถ 4. ใช้ 5. คำอธิบาย.
Yunnosch

1

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


นั่นใช้ได้ผลสำหรับฉัน แต่ ... ตอนนี้เมื่อดาวน์โหลดจากเว็บไซต์ของฉันแอปจะไม่ดาวน์โหลด (อย่างน้อยก็ไปที่โฟลเดอร์ดาวน์โหลด) ไม่มีรายงานข้อผิดพลาด ก็ไม่เกิดขึ้น เมื่อฉันเสียบโทรศัพท์เข้ากับคอมพิวเตอร์ฉันสามารถคัดลอก APK ไปยังโทรศัพท์และติดตั้งโดยไม่มีรายงานข้อผิดพลาด
รอน

0

อาจมีเหตุผลอื่นที่แอปพลิเคชันของคุณจะไม่อัปเดตเมื่อคุณเปลี่ยน / เพิ่ม / ลบ shareId ใน AndroidManifiest

"หุ่นยนต์: sharedUserId"

โปรดตรวจสอบด้วย

ในการป้องกันขอแนะนำให้ใช้ sharedUserId ในแอปพลิเคชันของคุณแม้ว่าคุณจะต้องการหรือตอนนี้ก็ตาม


0

ฉันลองทุกข้อข้างต้นแล้วไม่ได้ผล

ฉันพบว่าแม้จะถอนการติดตั้งแอป แต่แอปเวอร์ชันใหม่ก็ยังให้ข้อผิดพลาดเหมือนเดิม

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

เมื่อคุณทำสิ่งนี้ตอนนี้จะถูกถอนการติดตั้งจริงและจะอนุญาตให้ติดตั้งเวอร์ชันใหม่ของคุณ

หวังว่านี่จะช่วยได้

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