วิธีแก้ไขข้อผิดพลาด INSTALL_FAILED_INSUFFICIENT_STORAGE บน Android [ปิด]


525

INSTALL_FAILED_INSUFFICIENT_STORAGEข้อผิดพลาดเป็นสารพิษของทุกชีวิตนักพัฒนา Android ของ มันเกิดขึ้นโดยไม่คำนึงถึงขนาดแอพหรือมีพื้นที่เก็บข้อมูลเท่าใด การรีบูทอุปกรณ์เป้าหมายจะช่วยแก้ไขปัญหาโดยย่อ แต่ในไม่ช้ามันก็กลับมา มีหลายร้อย (ถ้าไม่นับพัน) ของการโพสต์กระดานข้อความจากคนถามว่าทำไมปัญหาเกิดขึ้น แต่คนที่ Google จะเงียบเฉยเมยในปัญหา

มีวิธีแก้ปัญหาง่าย ๆ หากอุปกรณ์การทดสอบของคุณใช้ Android 2.2 หรือสูงกว่าแล้วเพิ่มแอตทริบิวต์แฟ้มแสดงรายการแอพลิเคชันของคุณมีค่าandroid:installLocation "preferExternal"วิธีนี้จะบังคับให้ติดตั้งแอปในที่จัดเก็บข้อมูลภายนอกของอุปกรณ์เช่นการ์ด SD ของโทรศัพท์

ตัวอย่างเช่น:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.andrewsmith.android.darkness"
          android:installLocation="preferExternal"

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


มันจะใช้งานได้กับ Android API ระดับ 4 หรือ 1.6 หรือไม่?
mAc

ฉันได้รับผงชูรสนี้ในไฟล์รายการ: -> ข้อผิดพลาด: ไม่พบตัวระบุทรัพยากรสำหรับแอตทริบิวต์ 'installLocation' ในแพ็คเกจ 'android' กรุณาช่วยด้วย
someone_ smiley

1
@AndrewSmith: คุณช่วยตอบคำถามของคุณได้ไหม? เพียงแค่เจอคำถามนี้ระหว่างการตรวจสอบเพราะมันตั้งค่าสถานะเป็นไม่ได้เป็นคำถามที่แท้จริง ในขณะที่การตั้งค่าสถานะถูกต้องโดยทั่วไปมันจะเป็นความอัปยศถ้าการแก้ปัญหาจะหายไป
eckes

สิ่งแรกที่ต้องทำคือค้นหาว่าปัญหาเกี่ยวข้องกับพื้นที่จริงหรือไม่! ดูคำตอบของฉันสำหรับคำถามนี้เพื่อดูรายละเอียด
Robert Siemer

1
ฉันมีข้อผิดพลาดนี้กับตัวเลียนแบบ Android ใน android studio - ผู้จัดการ AVD มีตัวเลือกในการล้างข้อมูลบนอุปกรณ์เฉพาะ วิธีนี้ช่วยแก้ไขปัญหาของฉัน
Aseem

คำตอบ:


178

นี่เป็นเพียงวิธีแก้ปัญหาชั่วคราวและไม่ใช่การแก้ไขที่แท้จริง

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

คำอธิบาย

ก่อนอื่นบิตของพื้นหลังที่เรียบง่าย ติดตั้งและอัปเดตAndroid

ครั้งแรกที่ติดตั้งแอพ:

  1. เอพีเคไฟล์จะถูกบันทึกเป็น

    /data/app/<full.package.name>-1.apk  (1.apk)

เมื่อต้องอัปเดตแอป:

  1. ไฟล์ APK ที่อัปเดตแล้วจะถูกบันทึกเป็น:

    /data/app/<full.package.name>-2.apk (2.apk)
  2. เวอร์ชันแรก (1.apk) ถูกลบ

ในการปรับปรุงครั้งต่อไปของเรา:

  1. APK ใหม่จะถูกบันทึกเป็น (1.apk) และ (2.apk) จะถูกลบ (ทำซ้ำตลอดไป)

 

ปัญหาที่เราส่วนใหญ่เกิดขึ้นเมื่อมีการอัปเดตแอปพลิเคชัน แต่การลบ APK เก่าล้มเหลว ที่ตัวเองยังไม่ก่อให้เกิดการปรับปรุงที่จะล้มเหลว แต่มันก็ไม่ก่อให้เกิดจะมีสองไฟล์ APK /data/appใน

ครั้งต่อไปที่คุณพยายามอัปเดตแอประบบจะไม่สามารถย้ายไฟล์ชั่วคราวได้เนื่องจากไม่มี (1.apk) และ (2.apk) ว่างเปล่า เนื่องจาก File # renameTo (ไฟล์) ไม่ได้ส่งข้อยกเว้น แต่ส่งคืน PackageManager แบบบูลแทนจึงไม่มีวิธีที่จะบอกว่าทำไมจึงส่งกลับ INSTALL_FAILED_INSUFFICIENT_STORAGE แทนแม้ว่าความล้มเหลวไม่เกี่ยวข้องกับจำนวนพื้นที่ว่าง

สารละลาย

วิ่ง:

adb shell "pm uninstall <full.packge.name>"
adb shell "rm -rf /data/app/<full.package.name>-*"

หรือ

ถอนการติดตั้งแอพ

ใช้วิธีการที่คุณชื่นชอบเพื่อลบทั้งสอง :

/data/app/<full.package.name>-1.apk

/data/app/<full.package.name>-2.apk

ตรวจสอบให้แน่ใจว่าไม่มีอะไรบล็อกการติดตั้งในอนาคตในลักษณะเดียวกัน ในกรณีของฉันฉันมี/data/app-lib/<full.package.name>-1ไดเรกทอรีอ้อยอิ่งอยู่รอบ ๆ ! ในกรณีนี้การติดตั้งไปยังการ์ด SD ใช้งานได้และการย้ายไปยังหน่วยความจำภายในเช่นกัน สร้าง/data/app-lib/<full.package.name>โดยไม่ต้อง-1สิ้นสุด)

ทำไม "โซลูชัน" อื่น ๆ ถึงใช้งานได้

  • รหัสสำหรับการติดตั้งไปยังที่จัดเก็บข้อมูลภายนอกแตกต่างกันอย่างมากซึ่งไม่มีปัญหาเดียวกัน

  • ถอนการติดตั้งแอปเท่านั้นลบหนึ่งรุ่นของไฟล์ APK /data/appใน นั่นเป็นสาเหตุที่คุณสามารถติดตั้งใหม่ได้หนึ่งครั้ง แต่ไม่ได้ทำการอัพเดท

  • จำนวนพื้นที่ว่างในอีมูเลเตอร์ไม่เกี่ยวข้องจริงๆเมื่อเกิดข้อผิดพลาดนี้


9
@ Msmit1993 คุณไม่มีสิทธิ์เข้าถึงไดเรกทอรีข้อมูลบนอุปกรณ์ที่ไม่ได้รูท การมี SDK และ ADB นั้นไม่สำคัญ
Stan

3
สำหรับคนขี้เกียจอย่างแท้จริงที่นี่เป็นทุบตีข้อมูลโค้ด: function fix_app { adb shell "pm uninstall ${1}; rm -rf /data/app/${1}-*; su -c 'rm -rf /data/app-lib/${1}-*'" } $ fix_app com.facebook.katana
gnmerritt

1
ฉันพยายามด้วยandroid:installLocation="preferExternal"แต่ก็ไร้ประโยชน์ไม่มีอะไรทำงานในกรณีของฉัน ฉันกำลังใช้อุปกรณ์จริงสำหรับการทดสอบ ทางออกในกรณีนี้คืออะไร
Ram Patra

1
ฉันต้องล้าง/data/local/tmp
18446744073709551615

1
ในกรณีของฉันฉันเพิ่มเพื่อติดตั้งแอพด้วย adb install -f ... มันปฏิเสธที่จะติดตั้งเป็นอย่างอื่นแม้ว่าฉันจะมี 1.7GB ฟรีในหน่วยความจำภายใน อาจเป็นเพราะฉันไม่มี SDCARD แต่ด้วยตัวเลือก -f อย่างน้อยก็ใช้งานได้ฉันไม่รู้ว่าทำไม ...
xtof54

108

คุณต้องเพิ่มความจุหน่วยความจำของโปรแกรมจำลอง Android มีสองวิธีคือ:

  1. คลิกขวาที่รูทของโปรเจค Android ของคุณไปที่ "Run As" จากนั้นไปที่ "Run Configurations ... " ค้นหาโหนด "แอปพลิเคชัน Android" ในต้นไม้ทางด้านซ้ายจากนั้นเลือกโครงการของคุณและไปที่แท็บ "เป้าหมาย" ที่ด้านขวาของหน้าต่างมองหาช่อง "ตัวเลือกบรรทัดคำสั่งตัวจำลองเพิ่มเติม" (บางครั้งคุณ จะต้องทำให้หน้าต่างใหญ่ขึ้น) และสุดท้ายวาง "-partition-size 1024" ที่นั่น คลิกใช้จากนั้นเรียกใช้เพื่อใช้โปรแกรมจำลองการทำงานของคุณ

  2. ไปที่การกำหนดค่าตามความชอบของ Eclipseจากนั้นเลือก“ เรียกใช้” เพิ่ม“ -partition-size 1024” ในช่อง“ ตัวเลือกตัวจำลองเริ่มต้น” คลิก "ใช้" และใช้โปรแกรมจำลองของคุณตามปกติ


103
ออสการ์คุณคิดว่าสิ่งนี้เกิดขึ้นกับเครื่องจำลอง ในกรณีของฉันมันเกิดขึ้นกับอุปกรณ์จริงซึ่งคำตอบนี้ไม่ได้ตอบ
Jeff Axelrod

ตัวเลือกที่สองดูเหมือนจะไม่ทำงานสำหรับฉัน อย่างไรก็ตามตัวเลือก 1 ทำ! สิ่งที่ยอดเยี่ยม! และทำงานร่วมกับโปรแกรมจำลอง 2.1
DonnaLea

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

สูญเสียตัวเลือก 1 - ฉันไม่มีแท็บ "เป้าหมาย" ใน ecclipse ที่ตำแหน่งนี้
Ted Betz

ตัวเลือกที่ 2 ใช้งานได้สำหรับฉันขอบคุณสำหรับ gud post @RacZo
DD

31

ขอบคุณที่โพสต์คำถามนี้ ฉันมีข้อมูลเชิงลึกเพิ่มเติมที่อาจช่วยนักพัฒนาบางคน

ฉันกำลังดีบักแอปพลิเคชันของฉันบนอุปกรณ์ (ไม่ใช่ตัวจำลอง) อุปกรณ์ใช้งานได้ฟรี 21 MB/data (เปิดเผยโดย "df" เมื่อทำ "adb shell") และแอปของฉันมีขนาดเพียง 5 MB อย่างไรก็ตามฉันพบว่าหากฉันลบแอปอื่น ๆ บนอุปกรณ์ (โดยไม่ต้องรีบูตเครื่องโทรศัพท์หรือเริ่มการทำงาน adbd ใหม่) INSTALL_FAILED_INSUFFICIENT_STORAGE จะหายไปชั่วขณะหนึ่งแล้วจึงกลับมา

ดังนั้นดูเหมือนว่าการดีบักแอพ 5 MB ของฉันต้องการพื้นที่มากกว่า 20 MB /dataและนอกจากนี้บางอย่างก็รั่วไหลทุกครั้งที่ฉันดีบั๊กแอพของฉัน

ดังนั้นฉันจึง "adb shell" และแสดงรายการ/dataไดเรกทอรีทั้งหมดด้วย

cd /data
ls -a -l -R

และฉันดูที่เอาต์พุต 5000 บรรทัดเพื่อดูว่าพื้นที่ทั้งหมดกำลังไปที่ไหน

ฉันค้นพบพื้นที่ว่างเปล่าจำนวนมากบนอุปกรณ์ของฉันใน/data/klogไดเรกทอรีในรูปแบบของไฟล์บันทึกเก่าจากเซสชันการดีบักอายุเดือน

นี่ไม่ใช่ไฟล์บันทึกของฉัน: มันถูกสร้างโดยโครงสร้างพื้นฐานบางส่วนของ Android

ฉันลบพวกเขาและบันทึกทันที 58 MB ซึ่งไม่ได้ระบุในแอพการตั้งค่าของแอพใด ๆ ฉันมีอุปกรณ์ขนาดเล็กดังนั้น 58 MB นั้นสำคัญมาก (ประมาณ 40%)

จนถึงตอนนี้ฉันยังไม่ได้รับ INSTALL_FAILED_INSUFFICIENT_STORAGE อีกครั้งหลังจากการวิ่งหลายครั้ง หวังว่านั่นเป็นปัญหาจริงแม้ว่า OP จะแนะนำว่าอุปกรณ์ของเขามีพื้นที่เหลือเฟือ (แต่ก็ไม่ได้พูดเท่าไหร่)

หวังว่าบางส่วนของคุณยังจะสามารถที่จะหลบหนี INSTALL_FAILED_INSUFFICIENT_STORAGE /data/klog/*โดยระยะการลบ

หรืออย่างน้อยคุณสามารถทำls -a -l -Rใน/dataเพื่อดูว่าพื้นที่ทั้งหมดของคุณจะไปที่ไหนถ้ามีปัญหาพื้นที่ (ซ่อนอยู่) จริงๆ


26
มีความคิดวิธีการทำสิ่งนี้ในโทรศัพท์ที่ไม่ได้รูทหรือไม่? ฉันไม่สามารถเข้าถึงข้อมูลได้ โพสต์ที่ยอดเยี่ยม btw +1
Rich

1
ขอบคุณสำหรับข้อมูล. FYI คุณสามารถรวมแฟล็กใน Unix เพื่อให้lsคำสั่งนั้นกลายเป็นls -alR
mharper

1
ด้วยการเข้าถึงรูททำได้: # su # du / data | จัดเรียง -g เพื่อรับรายการโฟลเดอร์ / ไฟล์เรียงตามขนาด
JuanMa Cuevas

@JuanMaCuevas duแสดงรายการโฟลเดอร์เท่านั้น
naXa

@ ริชลองดาวน์โหลดแอพ Astro File Manager เป็นที่นิยมมากและช่วยให้คุณสามารถเข้าถึงไฟล์ในโทรศัพท์ของคุณ play.google.com/store/apps/…
Azurespot

22

ความช่วยเหลือดังต่อไปนี้:

  • เปิดเปลือกไปยังอุปกรณ์

    adb shell
  • นำทางไปยังไดเรกทอรี temp ที่มีการคัดลอก APK ที่เข้ามาเป็นครั้งแรก

    cd /data/local/tmp
  • แสดงรายการไฟล์ที่มีและลบตามที่ต้องการ

    rm * // use at your own risk, good practice to list files first

สิ่งนี้เชื่อถือได้สำหรับฉันจนถึงอุปกรณ์จริง


แก้ไข:สิ่งนี้กลายเป็นวิธีการแก้ปัญหาที่ไม่น่าเชื่อถือเหมือนอย่างที่กล่าวไว้ข้างต้น

ฉันพยายามแก้ไขปัญหาจำนวนหนึ่ง ไม่มีอะไรช่วยได้จริงๆ ในที่สุดผมก็พบว่าแอปที่เรียกว่าSD แม่บ้าน นั่นช่วยได้

มันบอกว่าฟังก์ชั่นถูก จำกัด บนอุปกรณ์ที่ไม่ได้หยั่งราก ของฉันถูกฝังรากดังนั้นจึงเป็นการดีที่จะได้เห็นการได้ยินจากคนที่มีประสิทธิภาพอยู่ในสถานการณ์เหล่านั้นและถ้ามันเป็นเพียงความบังเอิญที่มันเหมาะกับฉัน (มันเป็นปัญหาที่คาดเดาไม่ได้)

หมายเหตุ:ฉันไม่มีอะไรเกี่ยวข้องกับแอพ เพิ่งค้นพบมันด้วยการค้นหา


มันช่วยฉัน .. แอปพลิเคชันก่อนหน้าของฉันบางส่วนถูกเก็บไว้ในโฟลเดอร์ tmp หลังจากที่ฉันลบมันทำงานได้ดี ..
Mahendran Sakkarai

19

ฉันแก้ไขโดยรวมแท็กandroid:installLocation="auto"ด้าน<manifest>ในในไฟล์ AndroidManifest.xml


ทำงานได้อย่างแน่นอน ขอบคุณ
เท็ดดี้

นี่คือการแก้ไขเดียวที่ทำงานสำหรับฉันบนอุปกรณ์จริง ขอบคุณ
Shah Abaz Khan

เรียบง่ายและใช้งานได้ดี
ขอบคุณ

ฉันเพิ่มบรรทัด code.but นี้ แต่ยังคงได้รับข้อผิดพลาดนี้Error: ADB exited with exit code 1 adb: failed to install build\app\outputs\apk\app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE] Error launching application on Android SDK built for x86.
Husna

ทางออกที่ดีที่สุดในการทำงานกับอีมูเลเตอร์ ขอบคุณ!
Br0wn

16

ฉันได้เพิ่มสายการเพิ่มเติมเพื่อไฟล์ manifest android:installLocation="preferExternal"ของโปรแกรมซึ่งเป็น โดยใช้บรรทัดนี้มันบังคับให้ติดตั้งแอปไปยังที่เก็บข้อมูลภายนอก ดูตัวอย่างด้านล่าง

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.nasir.phonegap"
    android:installLocation="preferExternal" >

11

ปัญหาที่เกี่ยวข้องกับอีมูเลเตอร์คือเมื่อไม่มีพื้นที่เหลือใน/dataพาร์ติชัน

ตัวอย่างเช่น,

% adb shell df

Filesystem             Size   Used   Free   Blksize
/dev                   252M    32K   252M   4096
/mnt/asec              252M     0K   252M   4096
/mnt/obb               252M     0K   252M   4096
/system                154M   154M     0K   4096
/data                   64M    57M     6M   4096
/cache                  64M     1M    62M   4096

นี่คือมุมมองตัวอย่างของ/data/appไดเรกทอรี:

% adb shell ls -l /data/app

-rw-r--r-- system   system      19949 2011-10-12 17:09 CubeLiveWallpapers.apk
-rw-r--r-- system   system      27670 2011-10-12 17:09 GestureBuilder.apk
-rw-r--r-- system   system      34341 2011-10-12 17:09 SoftKeyboard.apk
-rw-r--r-- system   system      20151 2011-10-12 17:09 WidgetPreview.apk

ฉันลบไฟล์APKพิเศษออกแล้ว ดูเหมือนว่าทุกครั้งที่มีการติดตั้งคุณจะได้รับไฟล์ APK ใหม่ เพียงลบไฟล์ APK เพิ่มเติม

ตัวอย่างเช่น,

adb shell rm /data/app/com.brooklynmarathon.calendarapi2-1.apk

2
1. เรียกใช้ "adb shell" 2. cd ลงในแต่ละไดเรกทอรีในข้อมูลและค้นหาสิ่งที่มีไฟล์ไร้ประโยชน์ขนาดใหญ่ 3. ลบพวกเขาโดยใช้ "RM (ชื่อไฟล์)" 4. ปัญหาที่เกิดขึ้นของฉันอยู่กับถังขยะเช่น "ApiDemos" และ "Dalvik แคช" (เพียงแค่ลบเนื้อหาทั้งหมดของที่หนึ่ง)
อดัม

9

ในกรณีของฉันล้มเหลวเกิดจากcom.android.providers.mediaแอพ ฉันต้องเผชิญกับสิ่งนี้ในเครื่องจำลอง android x86 ฉันทำอะไร:

$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M   209M    14M   4096
....

พื้นที่ว่างเหลือน้อยเกินไป /data

$ adb shell du /data
...
409870  /data/data/com.android.providers.media
...

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

$ adb shell pm clear com.android.providers.media
Success
$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M     8M   215M   4096
...

ล้างดิสก์และติดตั้งแอปเรียบร้อยแล้ว


นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉัน หลังจาก 2 ชั่วโมง! :)
Ruchir Baronia

6

ฉันรู้สึกแปลก ๆ ที่เขียนสิ่งนี้ แต่ฉันไม่แน่ใจ 100% ว่าในบางกรณีมันไม่เป็นความจริง (มันใช้ได้กับฉัน) หากคุณมีอาการดังต่อไปนี้:

  • คุณทำงานโดยใช้อุปกรณ์ทางกายภาพ (ในกรณีของฉันคือ Samsung Galaxy Ace)
  • คุณพัฒนามาสองสามวันแล้ว
  • โทรศัพท์ของคุณเชื่อมต่ออยู่ตลอดเวลาทั้งกลางวันและกลางคืน
  • คุณเริ่มได้รับข้อผิดพลาดนี้หลังจากสองสามวันและมันก็แย่ลงเรื่อย ๆ
  • ไม่มีคำตอบอื่นใดที่เหมาะกับคุณ
  • คุณลาออกเหมือนที่ฉันเป็น ...

จากนั้นลองทำสิ่งนี้:

  • ถอดปลั๊กโทรศัพท์เมื่อคุณไม่ทำงาน!

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

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


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

พฤติกรรมเดียวกันสำหรับฉัน แต่การรีบูตโทรศัพท์แก้ปัญหาของฉันอย่างต่อเนื่อง
bdevay

6

ตอบกระทู้แรกของกระทู้นี้ ...

อาการ: แอพบางตัวไม่ได้ติดตั้งโดยบอกว่าไม่มีที่ว่างและใน reallity มีพื้นที่ว่างมากมายทั้งที่จัดเก็บข้อมูลภายในและภายนอก !!! การแก้ไข: ปิดการใช้งานการติดตั้งภายนอกโดยค่าเริ่มต้น

การตั้งค่าการติดตั้งภายนอกโดย defaut ด้วยสิ่งนี้:

adb shell pm set-install-location 2

ทำให้การติดตั้งเป็นไปไม่ได้ในหลาย ๆ แอพที่ไม่สามารถติดตั้งภายนอก (เช่น adblock + หรือมากกว่านั้น)

แล้วทางแก้คือ

adb shell pm set-install-location 0

หรือ

adb shell pm set-install-location 1

0: auto (if one is full - or irrelevant !!! - it select the other)
1: internal
2: external

ฉันเริ่มคิดว่าที่เก็บข้อมูลภายในของโทรศัพท์นี้ใช้งานไม่ได้ แต่การตั้งค่าตำแหน่งการติดตั้งเป็น 1 แก้ไขปัญหา "พื้นที่ไม่เพียงพอ" ขอบคุณ!
Wodin

6

ฉันพยายามต่อไปนี้:

  • รีสตาร์ทอุปกรณ์ของฉัน
  • ลบ APK ก่อนหน้านี้แล้ว
  • สร้าง APK ของฉันใหม่
  • ถอนการติดตั้งสำเนาก่อนหน้าของฉันในอุปกรณ์
  • ติดตั้งใหม่

ตรวจสอบว่ามันใช้งานได้เหมือนกันกับคุณ


3
ใช่การรีสตาร์ทอุปกรณ์เป็นเพียงเครื่องเดียวที่ใช้งานได้ (หลังจากลองใช้วิธีแก้ไขปัญหาต่าง ๆ จากหน้านี้)
Sulea Cosmin

รีสตาร์ทอุปกรณ์ทำงาน :)
cinobili19

5

Samsung Galaxy Aceโฆษณาที่เก็บข้อมูลภายใน 158 MB ตามข้อกำหนด แต่แอพพลิเคชั่นและบริการหลักใช้เนื้อที่ประมาณ 110 MB (ฉันใช้ตัวจัดการงานบนอุปกรณ์เพื่อตรวจสอบสิ่งนี้) แอปของฉันคือ 52 MB เพราะมีสินทรัพย์จำนวนมาก เมื่อฉันลบบางส่วนลงเหลือ 45 MB แล้วแอปก็สามารถติดตั้งได้โดยไม่มีปัญหา อุปกรณ์ยังคงแจ้งเตือนฉันว่าที่จัดเก็บข้อมูลภายในเกือบเต็มแล้วและฉันควรถอนการติดตั้งแอพบางตัวแม้ว่าฉันจะมีแอพเพียงตัวเดียวที่ติดตั้ง

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


4

ใน Eclipse

Run -- > Debug Configurations --> Select "target", และเลือกเป้าหมายอีมูเลเตอร์ที่ต้องการเพื่อเริ่มต้น

จากนั้นด้านล่าง "ตัวเลือกบรรทัดคำสั่งอีมูเลเตอร์เพิ่มเติม" เพิ่มสิ่งนี้:

- พาร์ทิชันขนาด 1024

จากนั้นปิดตัวจำลองและคลิกที่ไอคอนดีบักซึ่งจะเปิดตัวโปรแกรมจำลองที่คุณเลือก

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

หวังว่ามันจะช่วย ... !


คำแนะนำสำหรับAndroid Virtual Device Managerผู้ใช้ คุณสามารถตั้งค่าขนาดพาร์ติชั่นเป็น 1024 เป็น "Internal Storage" ซึ่งเป็นตัวแทนของdisk.dataPartion.size
meddlesome

3

ฉันพบปัญหากับ Nexus 4 ใหม่และ APK ที่สร้างด้วย Adobe AIR ฉันมี Android อยู่แล้ว: installLocation = "preferExternal" ในไฟล์ Manifest ของฉัน ฉันสังเกตเห็นว่าฉันกำลังโทรหาadb installด้วย-sตัวเลือก (ติดตั้งแพคเกจบนที่เก็บข้อมูลขนาดใหญ่ที่ใช้ร่วมกันเช่น sdcard) ซึ่งดูเหมือนว่าเกินความจำเป็น

การลบการ-sตั้งค่าสถานะจากการadb installแก้ไขปัญหาสำหรับฉัน


1
+1, สิ่งที่ดี, -s ควรใช้เฉพาะเมื่อมีการสร้างทับการติดตั้งก่อนหน้านี้
AAnkit

3

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

emulator -avd <emulator name> -partition-size 1024

เท่าที่ฉันรู้ตัวเลือกนี้ไม่ได้จัดทำเป็นเอกสารไว้ที่ developer.android.com ดังนั้นฉันคิดว่าฉันจะโพสต์ไว้ที่นี่เพื่อที่ผู้คนจะได้พบกับโซลูชันนี้


นี่เป็นตัวเลือกที่ดีที่สุดเพราะไม่เกี่ยวข้องกับการอัปเดตไฟล์หรือใช้งานแอปพลิเคชันใด ๆ เพียงavd
7ynk3r

2

ฉันเจอคำถามนี้เพราะฉันได้รับข้อผิดพลาดนี้โดยใช้ Sideload Wonder Machine เพื่อติดตั้งแอพลงในโทรศัพท์จริงของฉัน ฉันพบปัญหาคือมีไฟล์. apk หลายไฟล์ในไดเรกทอรี / payload ฉันคิดว่านี่เป็นสิ่งที่สนับสนุน แต่เมื่อฉันลบออกทั้งหมดยกเว้น. apk ข้อผิดพลาดหายไป


2

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


2

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

หากคุณกำลังใช้โปรแกรมจำลองให้ดูคำตอบของ RacZo


9
เรากำลังพูดถึงข้อผิดพลาดของการจัดเก็บไม่เพียงพอซึ่งเกิดขึ้นเมื่อมีที่เก็บข้อมูลมากมาย
user999717

2

ฉันพบข้อผิดพลาดเดียวกันเมื่อฉันพยายามแบทช์ติดตั้งประมาณ 50 แอพในไดเรกทอรีการ์ด SDโดยใช้เชลล์ADBหลังจากอัปเดต ROM แบบเต็ม:

for x in *.apk; do pm install -r $x; done

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


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

1

น้ำยาจำลอง

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

ตอนนี้แก้ไขconfig.iniไฟล์และเพิ่มบรรทัดต่อไปนี้หรือแก้ไขบรรทัดต่อไปนี้:

disk.dataPartition.size=1024

ที่ไหน1024คือขนาดที่คุณต้องการที่จะใช้ใน MB บันทึกไฟล์และจากนั้นเริ่มโปรแกรมจำลองของคุณด้วยwipe user dataการตรวจสอบ อีมูเลเตอร์ของคุณควรมีขนาดใหม่แล้ว


1

การแก้ปัญหานั้นง่าย

เปิด AVD Manager แก้ไข AVD ของคุณ

ด้านล่างในส่วนฮาร์ดแวร์มีคุณสมบัติบางส่วนที่แสดงรายการ "ใหม่ ... " และ "ลบ" ทางด้านขวา

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

มันคือเอกสารทั้งหมดที่นี่: http://developer.android.com/guide/developing/devices/managing-avds.html


2
พาร์ทิชันข้อมูลไม่สามารถใช้กับ Google API ระดับ 14
Ted Betz

1

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


1

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


1

ฉันได้รับข้อผิดพลาดนี้วันนี้เมื่อใช้โทรศัพท์ของฉันสำหรับการทดสอบ / การดีบักด้วย Eclipse

ข้อผิดพลาดของฉันคือฉันใช้อักขระพิเศษภาษานอร์เวย์ ("æ", "ø", "å") ในชื่อแอปพลิเคชัน เมื่อฉัน refactored ชื่อแอป (โดยใช้ "o" แทน "ø") แอปได้รับการติดตั้งอย่างถูกต้อง ..

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


1

หลังจากลองทุกอย่างอื่นในเธรดนี้ฉันพบว่าปัญหาของตัวเองเป็นเพราะเส้นทางไปยังไฟล์. apk นั้นยาวเกินไป ดังนั้นฉัน cd'ed ไปยังไดเรกทอรีที่. apk อยู่ในและทำ:

cd /Very/Long/Path/To/Package/
adb install mypackage.apk

แทน

adb install /Very/Long/Path/To/Package/mypackage.apk

และมันใช้งานได้ ... ติดตั้งได้แล้ว

แค่คิดว่านี่อาจช่วยคนอื่นได้


ฉันอาจเพิ่มการทำไดเรกทอรีลิงก์สัญลักษณ์อนุญาตให้ฉันสร้างบิลด์จาก IDE และ debug: ln -s / Users / abc / a \ ridiculously \ long \ directory \ path \ path / subpath / subsubpath / subsubsubpath / shortpath
David van Dugteren

1

การแก้ปัญหา:

รวบรวมเป็น 2.1 android:installLocation="preferExternal"ได้โดยไม่ต้อง

ตกลง?

รวบรวมเป็น 2.2 android:installLocation="preferExternal"รวมทั้ง

สิ่งนี้จะยังคงติดตั้งในรุ่น SDK น้อยกว่า 8 (แท็ก XML จะถูกละเว้น)


0

ในกรณีของฉันมันได้รับการแก้ไขโดยการเพิ่มหน่วยความจำเสริมของ eclipse โดยเปลี่ยนค่าของ-Xmx768mในeclipse.ini


0

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


0

ฉันประสบปัญหาเดียวกันเช่นกันและฉันได้ "รีเซ็ตข้อมูลเป็นค่าเริ่มต้น" และทำงานได้ดีหลังจากนั้น


8
ฉันไม่อยากจะแนะนำวิธีนี้เป็นวิธีแก้ปัญหา รวมมากเกินไป
ทิม

3
มันจะลบข้อมูลของคุณ / ซึ่งจะทำให้พื้นที่ว่างเพิ่มขึ้นดังนั้นการติดตั้งจะทำงานได้อีกครั้ง เครื่องมือทื่อมากและไม่ได้แก้ปัญหา ข้อผิดพลาดอาจกลับมาหลังจากแอปพลิเคชันไม่กี่
user999717

22
นี่มันเทียบเท่าหมอบอกว่า: ฉันไม่รู้ว่ามีอะไรผิดปกติกับแขนของคุณดังนั้นฉันจึงตัดมันออก
Derek

0

ฉันไม่สามารถเข้าถึงรูทบนโทรศัพท์ของฉันและไม่ได้เตรียมตัวสำหรับแอพที่จะติดตั้งบนการ์ด SD มีพื้นที่ว่าง 15 MB /data/และแอปพลิเคชันของฉันมีขนาดต่ำกว่า 2 MB

ในขณะที่ฉันได้โดย; ทำความสะอาดEclipseโปรเจ็กต์และรีสตาร์ทโทรศัพท์ แต่ในที่สุดมันก็หยุดทำงาน (อาจเป็นหลังจากการอัพเดต)

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

มีแอปพลิเคชั่นในตลาดที่คุณสามารถใช้เพื่อล้างแคชของแอพพลิเคชั่นหลาย ๆ ตัวพร้อมกัน ค้นหา "clean"

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