ข้อผิดพลาด 'ไม่ได้ติดตั้งแอป' บน Android


425

ฉันมีโปรแกรมที่ทำงานใน Android Emulator ฉันได้สร้าง. apk และเซ็นชื่อส่งออกไปยัง HTC Desire ทุกครั้งเพื่อทดสอบ ทุกอย่างเรียบร้อยดี

ใน. apk ที่ส่งออกล่าสุดของฉันฉันได้รับข้อความแสดงข้อผิดพลาด 'ไม่ได้ติดตั้งแอป' เมื่อฉันพยายามติดตั้ง. apk มันทำงานได้ดีกับตัวเลียนแบบ

ตามที่ฉันได้รับการทดสอบเกี่ยวกับการเลียนแบบและส่วนใหญ่ส่งออกไปยังโทรศัพท์จริงทุกครั้งและอีกครั้งฉันไม่แน่ใจว่าเมื่อสิ่งนี้เกิดขึ้น สาเหตุที่เป็นไปได้ของมันไม่ได้ติดตั้งบนโทรศัพท์จริง แต่ทำงานได้ดีในการเลียนแบบ?

ฉันได้ลองรีบู๊ตโทรศัพท์และลบ. apk ที่มีอยู่แล้วไม่สามารถแก้ไขข้อผิดพลาดได้


5
เมื่อคุณบอกว่าคุณได้ลบ. apk ที่มีอยู่คุณหมายถึงว่าคุณถอนการติดตั้งแอปพลิเคชันออกจากโทรศัพท์หรือไม่ หากไม่เป็นเช่นนั้นให้ถอนการติดตั้งแอปพลิเคชันก่อนลองติดตั้งอีกครั้ง
Telmo Marques

9
อะไรTOMSกล่าวว่าทำงานแล้วadb uninstall your.package.name adb install /path/to.apkฉันไม่เห็นสาเหตุที่ไม่ทำงาน คุณเปลี่ยนแปลงอะไรในขั้นตอนการเซ็นชื่อหรือไม่?
เฟลิกซ์

2
คุณได้ลองดีบั๊กโดยตรงจาก eclipse ในอุปกรณ์ที่เชื่อมต่อกับคอมพิวเตอร์เพื่อดูว่าบันทึกพูดอะไรอีกหรือไม่
Javi

1
ฉันลบแอพออกโดยใช้ตัวเลือกถอนการติดตั้งจากตัวจัดการแอปพลิเคชันบนโทรศัพท์
Entropy1024

เฟลิกซ์ ฉันจะเรียกใช้สิ่งที่ adb นี้จากที่ไหน
Entropy1024

คำตอบ:


265

เป็นหลักสำหรับโทรศัพท์รุ่นเก่า

ฉันพบApp not installedข้อผิดพลาดเมื่อพยายามติดตั้ง apk บนโทรศัพท์ของฉันซึ่งทำงานบน 4.4.2 หรือที่รู้จักว่า KitKat แต่เพื่อนของฉันไม่พบข้อผิดพลาดนี้ในโทรศัพท์ของเขาที่ทำงานบน 6+ ฉันลองใช้วิธีแก้ไขปัญหาอื่น ๆ เช่นการลบแอปรุ่นเก่า / ดีบั๊กเนื่องจาก apk เป็นรุ่นที่วางจำหน่ายการล้างข้อมูลแอพ debug และแม้แต่การล้างข้อมูลแคชทั้งหมดของฉัน จากนั้นในที่สุดฉันก็รู้ว่าทั้งหมดที่ฉันต้องทำคือเลือกทั้งลายเซ็นรุ่นเมื่อสร้าง apk ที่ลงชื่อแล้ว

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

ก่อนที่ฉันจะV2 (Full APK Signature)เลือกเท่านั้น แต่หลังจากเลือกV1 Jar Signatureเช่นกันฉันก็สามารถติดตั้ง APK ที่ลงชื่อของฉันบนอุปกรณ์ 4.4.2 ของฉันได้สำเร็จ หวังว่านี่จะช่วยผู้อื่น!


6
พิจารณาโซลูชันนี้เมื่อคุณมีโทรศัพท์รุ่นเก่า! ฉันมี Galaxy S4 mini พร้อม Android 4.4.2 และฉันลืมตรวจสอบ "ลายเซ็น V1" ดังนั้นจึงไม่สามารถติดตั้งในอุปกรณ์ หลังจากตรวจสอบแล้ว apk จะได้รับการติดตั้งอย่างมีเสน่ห์
Jose Ramon Garcia

1
@JoseRamonGarcia สิ่งที่ตลกคือฉันมีโทรศัพท์รุ่นเดียวกันและ Android เวอร์ชันฮ่าฮ่า! ดีใจที่ได้ผลกับคุณ
Chris Gong

1
ขอบคุณ! Android Studio ควรให้ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้เมื่อลงชื่อสมัครใช้หรือทำให้ชัดเจนยิ่งขึ้นว่าจะทำอย่างไรเมื่อคุณไม่ติ๊กV1 (Jar Signature)
melledijkstra

ในกรณีของฉันฉันต้องเพิ่มการกำหนดค่านี้ลงในไฟล์ manifesto android: installLocation = "internalOnly"
avinash kumar

1
ฉันลงนามในตอนแรกด้วย v2 เมื่อฉันพบปัญหา จากนั้นฉันก็เซ็นสัญญากับ v1 เท่านั้นและมันก็ใช้ได้ ฉันใช้ sdk23 บนโทรศัพท์ของฉัน
แอมเบอร์

206

สำหรับฉันบน Android 9 (API 28) การปิดใช้งานแอปGoogle Play Protectจาก play store ทำงานได้ดีและฉันสามารถกำจัดApp not Installedข้อผิดพลาดได้

วิธีปิดใช้งาน Google Play Protect เปิดแอปพลิเคชั่น "Play Store" => แตะที่ปุ่มเมนู => เลือก "Play Protect" option => ปิดการใช้งานตัวเลือก "สแกนอุปกรณ์เพื่อหาภัยคุกคามความปลอดภัย"


4
แม้ว่าเมื่อฉันพยายามติดตั้งแอปของฉันครั้งแรกฉันได้รับแจ้งจาก play Protect ว่าไม่สามารถตรวจสอบว่าแอปนั้นปลอดภัยและฉันกด "ติดตั้งต่อไป" แอปจะไม่ติดตั้ง การแทนที่นี้ใช้งานได้
user2565663

ฉันไม่มี Play Store ในโปรแกรมจำลอง Android (API 28)
Jerry Dodge

3
เช่นเดียวกับกรณีบน Android 8 (เพียงเพื่อเติมเต็มช่องว่างที่รายงานระหว่าง 7 และ 9)
cleardemon

3
ใช้งานได้ดี อย่าลืมคืนค่าการตั้งค่าเมื่อติดตั้ง apk แล้ว
Rahamath

ขอบคุณมากแก้ปัญหา Xiaomi Redmi 5 Plus ของฉัน
Nicola Gallazzi

150

ฉันมีปัญหาที่คล้ายกันและเป็นเพราะฉันพยายามติดตั้ง apk บนโทรศัพท์ที่มี apk รุ่นเดียวกันก่อนหน้านี้และทั้งสอง apks ไม่ได้เซ็นชื่อด้วยใบรับรองเดียวกัน ฉันหมายถึงเมื่อฉันใช้ใบรับรองเดียวกันฉันสามารถเขียนทับการติดตั้งก่อนหน้านี้ แต่เมื่อฉันเปลี่ยนใบรับรองระหว่างเวอร์ชันการติดตั้งนั้นไม่สามารถทำได้ คุณใช้ใบรับรองเดียวกันหรือไม่


9
ใช่มันเป็นใบรับรองเดียวกัน ฉันคิดว่าฉันเคยเป็นแบบนั้นมาก่อน ฉันได้ลองลบแอพที่มีอยู่ในโทรศัพท์และลองติดตั้งเวอร์ชันที่ไม่ได้ลงชื่อแล้ว ยังคงได้รับข้อความแสดงข้อผิดพลาดเดียวกัน
Entropy1024

2
ฉันยังมีปัญหาเดียวกันสำหรับที่ (รุ่นก่อนหน้าพร้อมใบรับรองอื่น ๆ ) - จะเฉพาะเจาะจงฉันมีมันติดตั้งโดยนัยสำหรับการใช้ดีบักเกอร์ Revmoving แก้ปัญหาได้แล้ว (ไม่ใช่กรณีของคุณดังที่แสดงไว้ด้านล่าง แต่ควรลงทะเบียนที่นี่)
chesterbr

11
โพสต์นี้มีคำตอบมากกว่า 30 ข้อ สิ่งที่ฉันแนะนำคือเมื่อใดก็ตามที่คุณประสบปัญหานี้ให้สังเกตบันทึกอุปกรณ์ขณะติดตั้งแอพ ใช้ adb logcat คุณจะได้ทราบสาเหตุที่แท้จริงของการติดตั้งที่ล้มเหลว บันทึกสำหรับปัญหาของฉันคือ "แพคเกจ com.companyname.appname ลายเซ็นไม่ตรงกับรุ่นที่ติดตั้งไว้ก่อนหน้านี้ละเว้น!"
Manikandan

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

120

เห็นได้ชัดว่ามีหลายสาเหตุของปัญหานี้ สำหรับฉันสถานการณ์เป็นแบบนี้: ฉันได้ปรับใช้กับ Nexus 7 ของฉัน (อุปกรณ์จริง) จากภายใน Android Studio (v1.3.2) ทำงานได้ดีทั้งหมด ฉันสร้าง apk ที่ลงชื่อแล้วและอัปโหลดไปยัง Google Drive ของฉัน หลังจากตัดการเชื่อมต่อ Nexus ของฉันจาก usb ฉันไปที่การตั้งค่า / แอพและถอนการติดตั้งแอพของฉัน (App1) ฉันเปิด google ไดรฟ์แล้วคลิกที่ App1.apk และเลือกที่จะติดตั้ง (ต้องแน่ใจว่าคุณอนุญาตให้ติดตั้ง apks ในการตั้งค่า) จากนั้นฉันได้รับข้อความที่หวั่น "ไม่ได้ติดตั้งแอพ"

วิธีแก้ปัญหาสำหรับฉัน: กลับไปที่การตั้งค่า / แอพและเลื่อนแม้ว่าแอพทั้งหมดและที่ด้านล่างเป็นแอพรุ่นซีดของ App1 ของฉัน (โน้ต App1 ดั้งเดิมอยู่ด้านบนสุดตามลำดับตัวอักษรซึ่งถูกลบไปด้านบน) เมื่อคลิกที่รุ่นสีซีดก็มีข้อความระบุว่า "ไม่ได้ติดตั้งสำหรับผู้ใช้รายนี้" (ฉันได้ตั้งค่า Nexus ของฉันให้มีผู้ใช้มากกว่าหนึ่งคน) แต่ในมุมบนด้านขวามีปุ่มสามจุด ผมกดนี้และกล่าวว่า"ถอนการติดตั้งสำหรับผู้ใช้ทุกคน" ซึ่งฉันทำและแก้ไขปัญหาได้แล้ว ตอนนี้ฉันสามารถคลิกที่ App1.apk และติดตั้งได้ดีโดยไม่มีข้อผิดพลาด


1
ใช่ฉันมีเหตุผลหลายอย่างและนี่เป็นหนึ่งในนั้น ขอบคุณ!
Alveoli

1
มีปัญหาเดียวกัน ฉันเปิดใช้งานบัญชีผู้เยี่ยมชมและเมื่อลบแอปมันไม่ได้ลบออกจากผู้ใช้ทั้งหมด
Filip Luchianenco

2
นั่นเป็นประโยชน์จริง ๆ และฉันได้ถอนการติดตั้งแอพของฉันไป 20 ครั้งก่อนที่ฉันจะพบสิ่งนี้ ขอบคุณมาก! :-)
Rahul Arora

3
หาก StackOverflow เท่านั้นให้เราโหวตมากกว่าหนึ่งครั้ง วิธีนี้ช่วยฉันเกือบปีที่แล้ว ฉันยกระดับและลืมมันทันที มีปัญหาเดียวกันวันนี้และมันช่วยฉันอีกครั้ง พยายามอัปโหลดแล้วและ StackOverflow กล่าวว่าฉันมีอยู่แล้ว โอ้ดี
เกล็

2
ขอบคุณ ฉันยังพบปัญหานี้ ไม่เป็นที่แน่ชัดในครั้งแรกที่ถอนการติดตั้งแอปพลิเคชันสำหรับผู้ใช้ที่ใช้งานปัจจุบันเท่านั้น เพื่อหลีกเลี่ยงการเข้าสู่การตั้งค่าทุกครั้งฉันใช้คำสั่งadb uninstall your.package.nameที่ถอนการติดตั้งสำหรับผู้ใช้ทั้งหมด
ซาเวียร์

61

ฉันประสบปัญหาเมื่อฉันอัปเดต android จาก 2.3.2 เป็น 3.0.1 หากเป็นกรณีนี้ IDE จะพิจารณาประเด็นต่อไปนี้โดยอัตโนมัติ

1. คุณไม่สามารถติดตั้งแอพที่มี android: testOnly = "true" ด้วยวิธีการทั่วไปเช่นจากตัวจัดการไฟล์ Android หรือจากการดาวน์โหลดจากเว็บไซต์

2.Android Studio ตั้งค่า android: testOnly = "true" บน APK ที่เรียกใช้

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

หากคุณส่ง apk นี้โดยคัดลอกจากโฟลเดอร์ build and debug ก็จะไม่ติดตั้งในอุปกรณ์

การแก้ไข : go Build ---> Build APK (s) ---> คัดลอกแชร์ไฟล์ apk ให้กับทีมของคุณ

จากนั้นปัญหาของคุณจะแก้ไข


1
คุณบันทึกงานของฉัน! ขอบคุณ!
img.simone

1
โอ้พระเจ้าฉันใช้เวลา 3 ชั่วโมง ..
cuddlemeister

มันได้ผล! ขอบคุณ!
ปีเตอร์

1
นี่นี่ตรงนี้คือคำตอบสำหรับฉัน น่ารำคาญว่าสิ่งที่เรียบง่ายนี้ไม่ได้ทำให้รู้ตัวอย่างโจ๋งครึ่มในโปรแกรมหรือผ่านข้อความผิดพลาดบนอุปกรณ์ ขอบคุณคน!
LFMekz

29

ฉันต้องเผชิญกับปัญหาเดียวกัน ปัญหาคือกิจกรรมหลักในไฟล์ AndroidManifest.xml ของฉันถูกเขียนสองครั้ง ฉันลบที่ซ้ำกัน


ขอบคุณสำหรับคำใบ้! ในกรณีของฉันandroid:exportedถูกตั้งค่าเป็นเท็จสำหรับกิจกรรมตัวเปิด
ildar ishalin

21

สิ่งนี้อาจเกิดขึ้นได้หากคุณมีการประกาศ MainActivity สองครั้งใน AndroidManifest.xml

อีกสาเหตุที่เป็นไปได้: คุณเปลี่ยนกิจกรรมการเปิดตัว คำแนะนำ: อย่าใช้มันกับแอพพลิเคชั่นที่เผยแพร่แล้ว! เหตุผลที่กล่าวถึงในนักพัฒนาซอฟต์แวร์ Android บล็อก


4
+1 android:nameแอตทริบิวต์ใด ๆActivity, Service, BroadcastReceiverและอื่น ๆ ที่ไม่สามารถเปลี่ยนแปลงได้ในไฟล์ Manifest แม้ว่าดูเหมือนว่าจะเป็นตัวระบุส่วนตัวภายในแอปของคุณ แต่เป็น API สาธารณะ
caw

ฉันต้องเปลี่ยนกิจกรรมการเปิดตัวของฉันฉันเพิ่มหน้าจอเริ่มต้นและข้างในฉันต้องดาวน์โหลดฟีดก่อนเริ่มกิจกรรมหลัก คุณมีวิธีแก้ปัญหาสำหรับสิ่งอื่นนอกเหนือจากการใส่หน้าจอเริ่มต้นในกิจกรรมหลักหรือไม่?
Chris Sim

2
คุณสามารถใช้แท็ก <activity-alias> เพื่อจัดการสิ่งนั้น!
thiagolr

18

ผมมีปัญหาเดียวกัน. ฉันไม่ได้ตระหนักว่าแอปจะต้องลงนามแม้กระทั่งสำหรับการทดสอบ

หลังจากเซ็นชื่อเองมันก็ติดตั้งได้ดี


1
ข้อมูลเพิ่มเติมได้ที่นี่: stackoverflow.com/questions/4853011/…
Francisco Corrales Morales

14

ฉันมีปัญหาเดียวกันและนี่คือวิธีแก้ไข: ไปที่ไฟล์มานิเฟสต์และตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าแอตทริบิวต์ "Debuggable" และ "ทดสอบอย่างเดียว" เป็นเท็จ มันใช้งานได้สำหรับฉัน :)


2
ไม่แน่ใจว่าสิ่งที่คุณหมายถึงโดย 'ทดสอบเท่านั้น' แต่การตั้งค่า debuggable เป็นจริงและลงนาม apk ทำงานให้ฉัน!
ingh.am

ไม่ได้ทำงานให้ฉัน ฉันใช้:android:testOnly="false" android:debuggable="false"
Francisco Corrales Morales

คุณอธิบายได้ไหม ฉันไม่มีคุณลักษณะเลยไม่ได้ตั้งค่าจริงและไม่เท็จไม่ได้อยู่ที่นั่น เส้นมีลักษณะอย่างไร
pashute

14

สำหรับผู้ที่ใช้ Android Studio 3

คำตอบของ Suryanarayana Reddy นั้นถูกต้องคิดว่ามันไม่ได้ระบุขั้นตอนในการแก้ไขดังนั้น

ใน AndroidManifest.xml ของคุณภายใต้แท็กแอปพลิเคชันจะเพิ่มtestOnly="false" และทำตามandroid:debuggable="true":

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >

แก้ไข
จากนั้นในแถบเมนู Menubar Build> Build APK (s)


ขอบคุณ! นำไปสู่การandroid:debuggable="true" Error: Avoid hardcoding the debug mode; leaving it out allows debug and release builds to automatically assign one [HardcodedDebugMode]ฉันพยายามandroid:testOnly="false"ทั้งสองBuild > Build Bundl(s) / APK(s) > Build APK(s)และBuild > Generate SignedBundle APK...มีลายเซ็นรุ่น v1, v2 (ในขณะที่หน้าจอด้านบน) ต้องลบแอปก่อนหน้านี้ก่อนจากนั้นจึงติดตั้งแอปใหม่
CoolMind

เพิ่งพบปัญหานี้ เพิ่งเพิ่ม android: testOnly = "false" และ Build -> Build Apks และเสร็จสิ้น เรียงทั้งหมด ขอบคุณ! ไม่จำเป็นต้องเพิ่มคุณสมบัติ android อื่น ๆ เช่น android: debuggable = "true"
androidStud

12

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่สำหรับผู้ใช้ใหม่อาจมีประโยชน์ ฉันมีปัญหาเดียวกัน: ใบสมัครของฉันทำงานได้ดีในขณะที่ทำการดีบัก เมื่อฉันลงนามใน APK ฉันได้รับข้อความเดียวกัน: "ไม่ได้ติดตั้งแอปพลิเคชัน"

ฉันแก้ไขว่าถอนการติดตั้ง JDK ของฉัน (ฉันใช้ jdk-6u14-windows-x64) และติดตั้งใหม่ (jdk-6u29-windows-x64) หลังจากส่งออกและลงชื่อ APK อีกครั้งทุกอย่างก็โอเค!

ทำงานต่อปัญหาของฉันเป็นรุ่น JAVA ขอบคุณของ Oracle !!


นี้แก้ไขได้สำหรับฉัน ... ข้อมูลเพิ่มเติมstackoverflow.com/questions/6282169/…
Greg Ennis

2
นั่นเป็นสิ่งที่แปลกอย่างไม่น่าเชื่อ นี่สำหรับอีมูเลเตอร์หรืออุปกรณ์หรือไม่
Joe Plante

12

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


2
จากตัวจัดการแอปพลิเคชันเลือกแอป (ซึ่งจะปรากฏขึ้น แต่ถูกระบุว่าถอนการติดตั้ง) เลือกเพิ่มเติมและตัวเลือกในการถอนการติดตั้งสำหรับผู้ใช้ทั้งหมดจะปรากฏขึ้น
Casey Murray

9

ปัญหาของฉันคือ: ฉันใช้Debug Apk ซึ่งสร้างขึ้นในขณะที่ฉันใช้คำสั่ง Runจาก Android Studio

วิธีแก้ไขคือ: แทนที่จะใช้ไฟล์นี้ให้ล้างข้อมูลโปรเจ็กต์แล้วคลิก Build> Build APK (s)จาก Android Studio จากนั้นคุณสามารถใช้ APK ที่สร้างจากโฟลเดอร์ปกติ (แอพ / บิลด์ / เอาท์พุต / apk / ดีบั๊ก /)

ไฟล์ที่สร้างเช่นนี้ติดตั้งโดยไม่มีปัญหา


7

หากแอปพลิเคชันไม่ได้ติดตั้งให้ลบไฟล์ .android_secure/smdl2tmpl.asecออกจากการ์ด SD

หากโฟลเดอร์.android_secureว่างในตัวจัดการไฟล์ให้ลบออกจากพีซี


5

ในที่สุดฉันก็พบว่าไม่มีการติดตั้งแอพสำเร็จ แต่ไม่ใช่ของฉัน ฉันตั้งค่าติดตั้งแอพเริ่มต้นจากการ์ด SD เป็นอัตโนมัติ ที่แก้ไขมัน


1
คุณจะทำสิ่งนี้ได้อย่างไร ฉันไม่พบตัวเลือกนี้เลยบนอุปกรณ์ของฉัน
SoulRayder

Huawei P8 Lite, Android 6.0, มีเพียง: Advanced / Mem & Storage / ตำแหน่งเริ่มต้น: ภายใน / SDCard มันไม่ได้ช่วยอะไร
kaay

5

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


5

ฉันได้แก้ไขปัญหานี้แล้ว

ปัญหาคือว่าฉันประกาศกิจกรรมหลักของฉันสองครั้งเปิดเป็นกิจกรรมแรกที่จะโหลดและฉันยังระบุตัวกรองเจตนาสำหรับมันและอีกครั้งที่ด้านล่างอีกครั้งฉันก็ประกาศอีกครั้ง

เพียงให้แน่ใจว่าคุณไม่ได้ประกาศกิจกรรมของคุณสองครั้ง


หากคุณประกาศกิจกรรมของคุณสองครั้งในManifest.xmlไฟล์ข้อผิดพลาดในการคอมไพล์จะแสดงเว้นแต่ว่าคุณมีกิจกรรมเดียวกันที่มีชื่อเดียวกัน แต่ในแพ็กเกจต่าง ๆ แต่สิ่งนี้ไม่ทำงานกับฉันเมื่อฉันตรวจสอบทุกอย่าง
blueware

5

สร้างไฟล์ keystore ผ่านทางบรรทัดคำสั่ง

keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore

ส่งออก apk ผ่าน Eclipse คลิกขวาที่เครื่องมือ AndroidโครงการAndroid> ส่งออกแพคเกจแอพลิเคชันที่ลงนามแล้วให้ที่ตั้งที่เก็บคีย์และรหัสผ่าน

สิ่งนี้จะบรรจุ apk ที่เซ็นชื่อพร้อมกัน apk จะถูก zipaligned และสามารถติดตั้งได้

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


4

ฉันมีปัญหาเดียวกันนั่นคือแอปปรากฏว่ามีการติดตั้ง แต่จะไม่เปิดขึ้นเมื่อมีการแตะไอคอน ฉันพบว่าฉันวาง 'android: export = "false"' ไว้สำหรับกิจกรรมตัวเรียกใช้หลักของฉันภายในไฟล์ AndroidManifest แล้วเมื่อฉันลบออกแอปก็เปิดตัวได้ดี ..


4

ปัญหาของฉันคล้ายกับของ @Lunatikzx เนื่องจากแท็กการอนุญาตที่ไม่ถูกต้องซึ่งเขียนเป็นแอตทริบิวต์ไปยังแอปพลิเคชัน:

<application
    android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:testOnly="false"
    android:debuggable="true">

อะไรที่ทำให้ฉันเปลี่ยนแท็กการอนุญาตเป็นแท็กแยกเช่นนี้:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4

Sideloading debug apps สำหรับการทดสอบบนโทรศัพท์จริงทำงานได้อย่างน่าเชื่อถือจนกระทั่งฉันอัพเกรดโทรศัพท์จาก Android Pie เป็น Android 10 หลังจากนั้นข้อผิดพลาด "ไม่ได้ติดตั้งแอพ" เกิดขึ้นทุกครั้งที่ฉันพยายามไซด์โหลดแอป

ตามคำเตือนใน AndroidManifest.xml ของฉันฉันเปลี่ยนจาก ...

<application
    android:name=".App"
    android:allowBackup="true" ... />

ถึง...

<application
    android:name=".App"
    android:allowBackup="false" ... />

หลังจากนั้นฉันก็สามารถโหลดแอปของฉันได้หนึ่งครั้ง จากนั้นฉันพบข้อผิดพลาด "ไม่ได้ติดตั้งแอพ" เดียวกันอีกครั้ง เมื่อเปลี่ยนallowBackupกลับเป็นtrueจะทำงานได้อีกครั้ง (อย่างน้อยหนึ่งครั้ง)

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


ฉันก็พยายามตั้งค่าandroid:allowBackup="true"ไปandroid:allowBackup="false"และยังคงไม่มีโชค
KRK

3

ตรวจสอบกับเวอร์ชั่น Android

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

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


ฉันจะดูไฟล์กำหนดค่า gradle ของ android ได้ที่ไหน ฉันไม่เห็นมันทั้งbuild.gradleในและในไฟล์รายการหุ่นยนต์ ยกเว้นcompileSdkVersion(ค่า 23) หรือminSdkVersion(16) หรือtargetSdkVersion(22) กำลังชี้ไปที่การตั้งค่าที่ต้องการ กาแล็กซี่ของฉันใช้ Android 7.0 (และขอให้อัปเดต แต่ฉันยังไม่อนุญาต) ฉันไม่ได้ใช้สตูดิโอแอนดรอยด์เพื่อสร้างแอปตอบโต้พื้นเมืองของฉัน แต่ควรทำเช่นนี้gradlew assembleRelease
pashute

3

ข้อผิดพลาด "ไม่ได้ติดตั้งแอปพลิเคชัน" อาจเกิดขึ้นได้หากติดตั้งแอพพลิเคชั่นหรือย้ายไปยังการ์ด SD จากนั้นเชื่อมต่อสายเคเบิล USB แล้วทำให้การ์ด SD ยกเลิกการต่อเชื่อม

การปิดที่เก็บข้อมูล USB หรือย้ายแอพกลับไปที่ที่จัดเก็บข้อมูลภายในจะช่วยแก้ไขปัญหาในกรณีนี้


3

ฉันยังพบปัญหานี้ กรุณาลองวิธีนี้ ตรวจสอบให้แน่ใจว่าชื่อแพ็กเกจของโปรเจ็กต์ของคุณแตกต่างจากโปรเจ็กต์ก่อนหน้าของคุณที่ติดตั้งไว้แล้วในโทรศัพท์มือถือของคุณ ฉันคิดว่าพวกเขามีความขัดแย้งในชื่อของพวกเขา มันใช้งานได้ในตัวฉัน


2
มันจะใช้งานได้ แต่ไม่มีทางออกที่ดีที่สุดเพราะคุณจะต้องติดตั้งแอพนับล้าน ดูคำตอบอื่น ๆ ด้านบน
Astra Bear

3

คุณอาจพบปัญหานี้เนื่องจากผู้ผลิตอุปกรณ์ของคุณไม่ได้ให้ลิขสิทธิ์แอพเชิงพาณิชย์ของ Google เช่น Play Store, YouTube, Google Maps ฯลฯ ทำตามคำตอบนี้เพื่อแก้ปัญหา


3

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

เมื่อฉันเปลี่ยนกลับเป็นชื่อไฟล์ดั้งเดิมที่ใช้เมื่อสร้างและเซ็นชื่อแพ็คเกจฉันก็สามารถอัปเดตแอปที่ติดตั้ง


ฉันคิดว่าในครั้งแรกที่ฉันติดตั้งฉันเปลี่ยนชื่อ ตอนนี้ค่าเริ่มต้น (app_release.apk) ไม่ได้ติดตั้ง บางทีฉันจะลองเปลี่ยนมัน ...
pashute

3

โดยใช้ Android สตูดิโอ, ฉันได้ติดตั้งก่อนหน้ารุ่นแก้ปัญหาไม่ได้ลงนามของเอพีเค ( รูปร่าง> รูปร่างเอพีเค ) และมีการถอนการติดตั้งก่อนการติดตั้งรุ่นที่วางจำหน่ายลงนาม ( รูปร่างที่แตกต่าง> รูปร่าง Variant: ปล่อย , รูปร่าง> สร้างลงนามเอพีเค )


1
ฉันเพิ่งเสียเวลาสองชั่วโมงกับปัญหาเดียวกัน แอพของฉันแสดงเวอร์ชันเช่น "3.5.6" แต่ไม่แสดงว่าเป็นรุ่นของการดีบักหรือรีลีส ฉันเล่นซอกับไฟล์ต่าง ๆ มากมายและติดตามว่าฉันอยู่ที่ไหนและพยายามอัปเดต Debug apk ด้วย apk Release ฉันคิดว่า Android เคยแสดงข้อความเช่น "ลายเซ็นไฟล์ที่ขัดแย้งกัน" แต่ตอนนี้ (Pie, 9.0) คุณเพิ่งได้รับ "แอพที่ไม่ได้ติดตั้งแอพ" โดยไม่มีตัวเลือกในการหาเหตุผล บทเรียนที่เจ็บปวด!
Stephen Hosking

3

สำหรับฉันสาเหตุคือฉันมีหลายบิลด์โดยใช้รุ่นบิลด์ที่ต่างกันในโทรศัพท์เดียวกัน:

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

เกิดอะไรขึ้นก็คือฉันสร้างบางส่วนเหล่านี้ถูกสร้างขึ้นอีกคนหนึ่งถูกส่งมาให้ฉันโดยนักพัฒนาอื่น .. พยายามที่จะติดตั้งนักพัฒนาในขณะที่ฉันมีงานสร้างอื่น ๆ (สร้างโดยฉัน) ทำให้เกิดข้อผิดพลาดข้างต้น

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


มีปัญหาเดียวกันฉันเดาทางออกคือการลงนามสร้างเสมอเมื่อใช้รสชาติ
Nickmccomb

3

ฉันต้องเผชิญกับปัญหาที่คล้ายกันในวันนี้และในตอนแรกฉันคิดว่ามันเป็นการ์ด SD ของฉันซึ่งมันเสียหาย ฉันลองในอุปกรณ์หลายเครื่องที่ใช้ Android 4.4 ขึ้นไป แต่มันยังคงนำปัญหาเดียวกันหลังจาก googling และการวิจัยฉันรู้ว่าฉันไม่ได้เลือกลายเซ็น v1 jarซึ่งสำหรับอุปกรณ์ที่เก่ากว่าAndroid 7.0 nougatดังนั้นฉันจึงใช้ทั้งสองอย่าง ลายเซ็นเหล่านี้โดยเลือกช่องทำเครื่องหมายสองช่องและสร้าง apk ที่ลงชื่อแล้วและทำงานได้

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

ลิงก์ไปยังโซลูชันAndroid - ข้อผิดพลาดของแอปไม่ได้ติดตั้งเมื่อติดตั้ง APK ที่ลงชื่อ - วิธีแก้ไข


สิ่งนี้ช่วยฉันสำหรับอุปกรณ์ที่ใช้ Android 6
Stefan Zhelyazkov

ฉันดีใจที่คำตอบนี้ช่วยคุณแก้ปัญหาได้ @ StefanZhelyazkov
Nelson Katale

2

สิ่งนี้สามารถเกิดขึ้นได้เมื่อสร้างวิดเจ็ตบนหน้าจอหลักและไฟล์ XML วิดเจ็ตของคุณมีกิจกรรมที่ไม่ถูกต้องที่ระบุในandroid:configureคุณสมบัติ

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