สิ่งนี้หมายความว่า: ล้มเหลว [INSTALL_FAILED_CONTAINER_ERROR]?


129

ฉันพยายามปรับใช้แอพของฉันและบางครั้งได้รับข้อผิดพลาดนี้:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

ฉันพยายาม google แต่ไม่พบข้อผิดพลาดความหมายหรือสิ่งที่เกิดจาก ฉันปรับใช้ผ่าน IDE (IntelliJ) ไฟล์จะถูกคัดลอกไปยังอุปกรณ์ไปยัง / data / local / tmp (หัวเว่ย Ideos ที่ไม่ได้หยั่งรากซึ่งทำงาน 2.2) แต่ผู้จัดการแพ็คเกจดูเหมือนจะไม่ชอบ ก่อนติดตั้ง apk ฉันได้ลบแอพออกจากอุปกรณ์ล่วงหน้าแล้ว ฉันยังทำให้แน่ใจว่าไม่มีไฟล์เก่าภายใต้ / data / local / tmp บนอุปกรณ์ ยังฉันได้รับข้อผิดพลาดนี้ในขณะนี้ แพคเกจควรเซ็นชื่อด้วยรหัส debug เนื่องจากฉันปรับใช้ผ่าน IDE โดย 'เรียกใช้' แอป

$ pwd 
/data/local/tmp 
$ ls -l 
-rw-rw-rw- shell    shell    17257686 2011-04-21 20:31 
com.company.shop 
$ pm install -r com.company.shop 
        pkg: com.company.shop 
Failure [INSTALL_FAILED_CONTAINER_ERROR]

มันหมายถึงอะไรและจะแก้ไขได้อย่างไร

แก้ไข / ปรับปรุง:

ฉันสามารถหลีกเลี่ยงข้อผิดพลาดเมื่อไม่อนุญาตให้ติดตั้งแอพใน sdcard, การตั้งค่า

android:installLocation="internalOnly"

ในรายการ มันใช้ได้สำหรับการพัฒนา แต่สำหรับการผลิตมันไม่ใช่สิ่งที่ฉันต้องการจริงๆ - เนื่องจากแอพของฉันมีขนาดใหญ่มากด้วย 17mb; ดังนั้นฉันชอบที่จะอยู่ใน sdcard วิธีติดตั้งบนหน่วยความจำภายนอกโดยไม่ต้องทำการรูท (เนื่องจากนี่เป็นวิธีเดียวที่ฉันสามารถลบ /mnt/secure/asec/smdl2tmp1.asec ซึ่งดูเหมือนจะเป็นทางออกหนึ่งเช่นกัน)


เพิ่งจากความอยากรู้: คุณสามารถติดตั้งได้pm install -f com.company.shopหรือไม่
Jakub Czaplicki

ปัญหามีหลายรูปแบบINSTALL_FAILED_CONTAINER_ERRORสำหรับบางคนดูคำตอบของฉันที่นี่: stackoverflow.com/a/30343659/313113
bitek

สำหรับฉันมันง่ายเหมือนอีมูเลเตอร์ "พื้นที่ว่าง" (???) และฉันต้องล้างข้อมูลใน AVD Manager
EpicPandaForce

คำตอบ:


44

ลบไฟล์นี้จากอุปกรณ์ของคุณ

/mnt/secure/asec/smdl2tmp1.asec

แก้ไข / อัปเดตโดย Mathias Conradt (OP):

หากคุณไม่มีสิทธิ์การเข้าถึงรูทคุณจะต้องติดตั้ง sdcard และลบมันออกทางพีซี:

/.android_secure/smdl2tmp1.asec

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

1
btw - นอกจากนี้ยังมีโฟลเดอร์ / mnt / asec / ที่ฉันสามารถเข้าถึงด้วยไม่ใช่รูท แต่นั่นว่างเปล่า
Mathias Conradt

3
@Jazz วันนี้มีความสุขกับฉัน ฉันอยากจะรู้ว่าทำไม / สิ่งนี้เกี่ยวกับ ลบไฟล์ด้วยตนเองหรือไม่ ทำไมคราสไม่สามารถทำเช่นนี้? นี่เป็นข้อบกพร่องของโทรศัพท์หรือไม่
Erik

1
ฉันมีปัญหานี้ ฉันไม่เห็นไฟล์ / โฟลเดอร์โดยใช้ Mac ของฉัน มีวิธีอื่น ๆ?
SleepNot ไม่

14
สิ่งนี้ใช้ได้ผล แต่คุณสามารถอธิบายได้ว่าทำไมถึงเป็นเช่นนั้น มีอะไรในไฟล์ smdl2tmp1.asec ที่ลึกลับ?
Alexander Pacha

222

เปลี่ยนตำแหน่งการติดตั้งจาก

android:installLocation="preferExternal"

เข้าไป

android:installLocation="auto"

ใน AndroidManifest.xml ของโครงการของคุณ


12
นี่คือสิ่งที่ทำเพื่อฉัน ขอบคุณ!
Jim McKeeth

ใช่มันก็ทำเพื่อฉันเช่นกัน ขอบคุณ!
Senthil Kumaran

22
แต่ฉันต้องการที่จะชอบภายนอก ... จะแก้ไขได้อย่างไร?
Aiden Fry

2
@Sameer ไม่เกิดขึ้นกับอุปกรณ์จริงเช่นกัน - แต่ไม่สอดคล้องกัน สิ่งสำคัญคืออุปกรณ์ HTC Desire S และ Nexus
Aiden Fry

1
@AidenFry ใช้โซลูชัน user2445968 หากคุณต้องการเก็บ preferExternal
LG

32

หากคุณกำลังใช้อีมูเลเตอร์ให้แก้ไขและเพิ่มหน่วยความจำเพิ่มเติม ฉันมีปัญหาเช่นนี้และสิ่งที่ฉันทำคือแก้ไขหน่วยความจำ AVD ของฉันจาก 200 MB เป็น 1,000 MB และปัญหาดูเหมือนจะหายไป ... โชคดี


ใช่มันเกิดขึ้นกับฉันเหมือนกัน Thumbs up :)
NaXir

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

2
ฉันขอเดาได้ไหมว่าคุณอ้างถึง Internal Storage ไม่ใช่ RAM?
จอนนี่

1
ฉันเพิ่มหน่วยความจำ AVD ของฉันแล้วเช็ดข้อมูล !! และตอนนี้ก็ใช้งานได้
พบ Vora

7

ซึ่งหมายความว่ามีการติดตั้งก่อนหน้านี้ที่เสียหาย หากคุณติดตั้งภายนอกฉันขอแนะนำให้คุณฟอร์แมตการ์ด sd อีกครั้ง


6

ฉันมีข้อผิดพลาดนี้ซ้ำ ๆ ฉันได้พบวิธีที่ง่ายที่สุดในการหลีกเลี่ยงข้อผิดพลาดทั้งหมดคือเพียงฟอร์แมตการ์ด SD การใช้เครื่องมือภายในโทรศัพท์หรืออุปกรณ์จำลอง ฉันได้พบว่าการ์ด SD ที่สร้างขึ้นโดยอัตโนมัติหรือทำให้ sdcard.iso ของคุณล้มเหลวและทำให้เกิดข้อผิดพลาดนี้เว้นแต่ว่าได้จัดทำโดยเครื่องมือ Android ภายใน


1
ยินดีต้อนรับสู่ Stack Overflow! ขอบคุณสำหรับการโพสต์ของคุณ! กรุณาอย่าใช้ลายเซ็น / แท็กไลน์ในโพสต์ของคุณ กล่องผู้ใช้ของคุณนับเป็นลายเซ็นของคุณและคุณสามารถใช้โปรไฟล์ของคุณเพื่อโพสต์ข้อมูลใด ๆ เกี่ยวกับตัวคุณที่คุณชอบ คำถามที่พบบ่อยเกี่ยวกับลายเซ็น / แท็กไลน์
Andrew Barber

แก้ไขปัญหานี้ด้วยวิธีแก้ไขปัญหาเดียวกันเนื่องจากปัญหาเกิดจากการเขียนข้อผิดพลาดไปยัง SDCard จะดีกว่า workaorund ของ Rene f ที่คุณต้องการให้ android: installLocation = "preferExternal"
LG

ยืนยัน. ข้อผิดพลาดใน SD คือเหตุผลสำหรับฉัน ฉันทดสอบว่าจะลบ "ต้องการภายนอก" ออกจากรายการ - ติดตั้งแล้ว
djdance

4

สำหรับฉันนี้เกิดจากการขาดพื้นที่ใน SD card ของโปรแกรมจำลองการของฉัน ฉันทำงานกับโครงการที่ค่อนข้างใหญ่และฉันคิดว่า 40 mb เพียงพอ แต่ฉันเปลี่ยนเป็น 200 mb และปัญหาก็หายไป


4

มีข้อผิดพลาดเดียวกันกับต่างๆ.apkใน Cyanogenmod 12.1 (Android 5.1.1) ใน Note 8 ของฉันพร้อมพาร์ติชันที่สองสำหรับ Link2SD ฉันสามารถติดตั้งแอพโดยบังคับให้ติดตั้งผ่าน adb ในฐานะ root:

adb root
adb install -f myapp.apk

3

ฉันได้รับข้อความแสดงข้อผิดพลาดจาก Android 5.0.1 ฉันเปลี่ยนตำแหน่งการติดตั้งที่ต้องการเป็น "การ์ด SD แบบถอดได้" ผ่านการตั้งค่า -> แอพ -> ตำแหน่งการติดตั้งที่ต้องการ

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


1
นี่ดูเหมือนจะเป็นทางออกสำหรับฉันที่ใช้ Cyanogenmod 12 (Android 5.0.2) ดูเหมือนว่าการเปิดนั้นบังคับให้แอปติดตั้งบนการ์ด SD แบบถอดได้แม้ว่ารายการของแอปจะระบุว่าไม่สามารถติดตั้งได้
Sam

1

สำหรับฉันมันเป็นภาษาของอุปกรณ์ ฉันเปลี่ยนภาษาเป็นภาษาอาหรับเพื่อทดสอบใบสมัครของฉัน จากนั้นฉันได้รับข้อผิดพลาดนี้ การย้อนกลับไปใช้ภาษาก็เป็นกลอุบาย


1

android: installLocation = "auto" ใช้งานได้ .. !!

หากไม่ใช่ให้ตรวจสอบขนาดพื้นที่เก็บข้อมูลภายนอกของคุณ [หน่วยความจำที่มีอยู่> ขนาดแอพ] หากพื้นที่จัดเก็บไม่เพียงพอก็จะโยนข้อผิดพลาดนี้


0

ฉันมีปัญหาคล้ายกับโปรแกรมจำลอง มันหายไปเมื่อฉันเปลี่ยนซีพียูของอีมูเลเตอร์จาก ARM เป็น Intel


สิ่งนี้ไม่ได้ช่วย OP กับปัญหาของพวกเขาเนื่องจากความกังวลของพวกเขาคือทำให้มันทำงานบนอุปกรณ์ในโลกแห่งความเป็นจริงซึ่งยังคงใช้ ARM CPU อยู่มากมาย
James Green


0

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


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