即使设备内存中有大量可用空间,“可用存储空间不足”


140

我的应用程序的总空间为10 MB,安装后将不到20 MB。在Galaxy Note I中,在更新我的应用程序时,它说“可用存储空间不足”,其中设备内存(内部)有214 MB的可用空间。即使尝试下载新应用,它也会发生。

我一直在寻找解决方案,并找到了导致该问题的最佳原因,但我找不到。我该如何解决这个问题?

这是我的另一个具有相同问题的设备中的“ adb shell df”的结果。它具有35 MB的可用空间:

/dev: 115788K total, 0K used, 115788K available (block size 4096)
/mnt/asec: 115788K total, 0K used, 115788K available (block size 4096)
/system: 179840K total, 168376K used, 11464K available (block size 4096)
/data: 201856K total, 168524K used, 33332K available (block size 4096)
/cache: 108544K total, 1284K used, 107260K available (block size 4096)
/cdrom: 8960K total, 8632K used, 328K available (block size 4096)
/tmp: 2048K total, 28K used, 2020K available (block size 4096)
/pds: 1536K total, 1320K used, 216K available (block size 4096)
/mnt/sdcard: 1928992K total, 1014496K used, 914496K available (block size 32768)
/mnt/secure/asec: Permission denied

2
您看到的报告的可用空间可能不是实际内部存储的可用空间,而是“内部”(如永久焊接)的“外部”存储空间。如果你可以从命令行运行ADB,后期的输出adb shell df
克里斯·斯特拉顿

这是客户端的问题。所以我不能运行adb shell。
狙击手

然后谁可以找到将存储应用程序的设备的实际内部存储(可用空间)。
狙击手

1
您是否在清单中声明了android:installLocation?
Blackbelt

8
这个问题似乎与主题无关,因为它与用户级别的问题有关。Android爱好者在家会更好。
彼得·莫滕森

Answers:


177

这是一个非常简单的解决方案,可在我的Samsung Galaxy S IINote 1上使用;我对其他模型一无所知:

  1. 打开手机应用程序,然后切换到键盘。
  2. 拨号 *#9900#
  3. 在出现的屏幕上,单击标有“ Delete dumpstate / logcat”的按钮。

这样,我已经还原了大约1 GB的系统空间。


3
它确实删除了我的Galaxy Note 1的内部空间(约300 MB),但值得一提。从我的+1开始。
Mohammad Arif

15
这个问题的答案错误。没有内部存储空间的不足在这里
罗伯·西默

13
显然,它不适用于非股票拨号器(例如CyanogenMod),但如果在有根,经过修改的电话上尝试此操作时遇到“无效的MMI”错误,请参阅rhlee的答案,以解决相同的问题。
ChrisC

3
我如何在没有拨号盘并且也不扎根的平板电脑上做同样的事情?
Jalle

1
对于我(hammerhead,API-19)而言,问题是/ data / app-lib /包含了我尝试安装的应用程序包。卸下并固定。
shkschneider 2014年

67

最初,我尝试了Berislav Lopac的回答,但是Connection problem or invalid MMI code.当我尝试拨号时就知道了*#9900#。我在电话上使用的是CyanogenMod,我相信带有自定义ROM的电话不使用股票拨号器,因此它们缺少SysDump功能。

基本上,Delete dumpstate/logcat在SysDump中清除中的日志文件/data/log。但是您也可以在没有SysDump的情况下手动执行此操作。(这是假设您的手机已经扎根,如果您的手机运行的是CyanogenMod或任何其他非备用ROM,情况就是如此。)

  1. 确保已安装超级用户和终端仿真器应用程序。(它们带有大多数自定义ROM。)
  2. 运行终端模拟器
  3. 输入su,按回车键。
  4. 这将显示一个超级用户提示。授予访问权限。(您必须等待三秒钟,然后才能单击“允许”。)
  5. 通过输入来更改当前目录cd /data/log,然后返回。
  6. 。确认你是在data/log用打字的目录pwd,然后返回。它应该打印出您当前所在的工作目录:/data/log。确保您位于正确的目录中非常重要,因为下一步将删除当前所在工作目录中的所有文件。
  7. 输入rm *,然后返回,以删除目录中的所有文件。
  8. 关闭终端窗口或应用程序,或键入exit以退出su会话。

我删除了大约1,500个1 MB的文件,并解决了“可用存储空间不足”的问题。

与其他海报一样,我拥有Galaxy S II,因此该型号似乎有问题。

如果有人知道停止日志文件建立的永久解决方案,请告诉我。

注意:一些文件管理器将以/data/log无特权运行的方式错误地列出为空,因此缺少查看其中文件的权限。


谢谢,这是第一篇论坛文章,向我解释了*#9900#事情不起作用时的处理方法!我怀疑是无效的MMI问题背后的CyanogenMod,但不知道从那里去哪里。我也曾使用过ES File Explorer,但是它没有向我显示/ data / log目录-大概我忘记了让它查看隐藏文件。
ChrisC

2
@Chris Chapman:在使用CyanogenMod时,可以使用CyanogenMod自己的文件浏览器,称为文件管理器(带有白色箭头/圆圈的蓝色文件夹)。在应用程序中转到“设置”->“常规设置”->“访问模式”,并将其更改为“提示用户”模式或“根访问”模式(“提示用户”模式更安全)。然后,您应该就能看到/ data / log目录中的文件。另外,您将能够批量删除所有文件。此方法比较容易,但是删除文件的速度较慢。
rhlee

+1!我总是看到这些数字*#9900#*#7832但是由于Cyanogen ROM而不适合我。
S.Thiongane 2014年

13
这是否适用于CyanogenMod 10.2?因为我没有“ / data / log”文件夹。“无此文件或目录”。
jonS90 2014年

7
我有/data//data/data//sdcard/data/,但这些都没有一个log子文件夹
endolith

18

操作系统可能会保留该内存,以用于运行您通常运行的内容(有点像交换文件)。您可以通过以下方式挤入另一个或两个应用程序

  • 尝试在重新启动后立即安装它们,或者
  • 通过强制关闭某些正在运行的应用程序(但是第二个选项可能不是一个好主意-请参阅第一个链接),

但是唯一好的解决方法可能是

  • 重新分区SD卡,以便可以直接在其中安装应用程序(请参阅第二个链接)。

看看论坛上的帖子它必然会发生:低内存警告!

重要的部分是:

操作系统知道运行现有应用程序需要多少内存。这是一个完美的例子。

现在,您可以通过强制关闭RAM中的某些应用程序来“欺骗”操作系统。这将增加您的“存储桶”的内存,这可能使您可以安装应用程序,但是请记住,如果您执行这些类型的操作,只会导致将来出现问题..滞后,错误消息等(因为您在愚弄操作系统)认为您给了它更多的内存,而实际上您确实这样做了。

关于正在发生的事情的另一个很好的解释是在论坛帖子低内存中

重要的部分是:

内部空间充满的原因是3倍。首先,当某个应用程序“移动”到SD卡时,它并未完全移动。实际上只有一部分可以使用。其次,该应用程序的Dalvik缓存仍存储在内部存储器中(占用大量空间)。第三,应用程序的数据和所有系统设置都存储在内部存储器中(是的,某些应用程序使用SD卡存储其部分数据,但每个应用程序都将数据存储在内部存储器中)。

该主题还包括有关您可以对SD卡进行哪些分区以允许“讨厌的应用程序”的建议!


5
根据androidforums.com/evo-4g-support-troubleshooting/…的说法,“嗯,这都是不正确的。安装应用程序的ROM区域与运行/缓存应用程序的RAM区域无关。TaskKiller将释放RAM,而不是ROM。仅通过杀死它们,您将无法在该区域安装更多应用。” (我认为ROM是错误的术语,但仍然如此)
nafg

1
“ ROM”(只读存储器)根本不在这里讨论。与ROM不同,我们正在讨论的每种存储类型都是可变的。什么正在讨论是RAM和存储空间,即使是那些概念由交换空间的概念,其中一个充当其他模糊。如果您要发布其他答案,则可能具有建设性,但指向ROM的参数似乎要少得多。
2013年

7
完成胡说八道。1)在这里我们不谈论RAM,但是您在谈论。为什么?2)Android不使用swap(默认情况下)。3)操作系统不会为已安装的应用程序保留RAM。4)内部存储存储器未满,如op所示!4)@Sniper,求求你,不接受这个离谱的答案!
罗伯·西默

3
这个答案似乎无关紧要。以下是更多有用的答案。
艾德先生

1
@AM,您完全离开了。ROM是电话的内部存储设备(例如计算机中的硬盘驱动器)。RAM是CPU工作时使用的“便笺本”,是应用程序运行时将其加载到的位置。对于所有固态存储,ROM一词的确是“混泥土”。它实际上可以归结为两种不同类型的“内存”:1)易失性内存(RAM)速度很快,并且需要电源来“存储”事物,这意味着在设备关闭时,该内存就将被擦除。2)非易失性存储器(ROM)是即使没有电源也可以存储数据的地方。
Mike U

12

程序包管理器(“安装程序”)有一个设计问题:它无法区分许多可能的错误,并经常提出“存储空间不足”的借口。

第一个步骤完成:确定这是一个安装的问题(1),并没有涉及到存储不足(2)

  1. 它会在控制台(pm install file.apk),Google Play,其他市场和手动安装GUI的情况下发生(例如,在下载的APK文件上“单击” );这不是下载问题,...
  2. 程序包最终全部位于/data分区上-或-多数情况下位于SD卡上(还有一点/data)。–对于<20 MB的软件包,两个地方都显示了足够的空间,如原始海报所示(分别为33 MB和> 900 MB)。–并且– /data分区具有10%以上的可用空间(33 MB超过200 MB的10%)。

令人惊讶的是,大多数答案都没有考虑到这一点...

实际上,该/data分区需要清除以前安装中的残留物。

  • 标识有问题的程序包的通用名称(例如com.abc.def)
  • 卸载软件包(例如,pm uninstall com.abc.def
  • 检查数据中还剩下什么(例如find /data -name 'com.abc.def*'
  • 删除那个东西

安装程序会阻塞这些错误,并以错误的原因返回。–有趣的部分是:如果软件包(通过强制或其他方式)安装在SD卡上,则剩余的部分(全部?)/data则不会受到伤害……这导致错误地认为这确实是空间问题( SD卡上有更多空间...)!

我从其中得到一半的堆栈溢出问题是Android上INSTALL_FAILED_INSUFFICIENT_STORAGE错误的解决方案


6

要做的第一件事是检查错误消息的详细信息。为此,您可以使用LogCat App

对我来说,问题是像

Cannot rename native library directory /data/app-lib/vmdl-... to /data/app-lib/com.xyz

解决方案是激活我大脑中的常识功能,并使用ES-Explorer在app-lib文件夹中查找com.xyz文件夹。我认识到该文件夹​​已经存在。因此,删除它可以解决重命名问题,并且应用现在可以正确安装。


3
有点难过多少解决方案依赖于下载和安装另一个应用程序
鸭子鸣叫

6

我的手机也遇到了同样的问题,这解决了问题:

  • 转到Application Manager/ Apps从设置中。

  • 选择Google Play Services

在此处输入图片说明

  • 单击Uninstall Updates按钮右侧的Force Stop按钮。

  • 卸载更新后,您应该看到Disable按钮,这意味着您已完成。

在此处输入图片说明

您将看到大量可用空间。


1
并且您应该对每个应用程序都执行相同的操作,尤其是Google的应用程序。不要忘记之前禁用应用程序的自动更新。
GoTo

2

卸载后在安装应用程序时也遇到了这个问题。我解决了下载Lucky Patcher的问题,然后单击菜单-故障排除-删除修复程序和备份(可用存储空间不足)。请注意,您需要植根设备。


我的Lucky Patcher(版本3.6.7)在菜单中没有“删除修订和备份”。
罗伯特·西默

由于出现相同的错误,我无法安装Lucky Patcher。它不会{甚至不会使用ADB进行安装...
Metafaniel

2

我有一个没有根目录的Nexus 4(它只有内部存储,没有SD卡),并且在更新大型应用程序时出现此错误。较小的应用程序可以正常更新。

我发现这是因为我最近注册了Play Music All Access服务并固定了几张专辑。

这些被下载到隐藏/data分区,而这正是空间用完了(我认为)

我取消固定了几张相册,现在安装应用程序没有问题。


2

1.重新启动手机,然后重新安装应用程序

我的设备上也遇到了同样的问题Insufficient Storage Available,但是我重新启动了设备,并且工作正常!

PS:

2.在外部存储上安装应用程序

为此,请Storage Location使用以下命令进行设置

adb shell pm set-Install-Location 2 // 2 for external storage ([SD card][1])

adb shell pm set-Install-Location 1 // 2 for internal storage 

adb shell pm set-Install-Location 0 // for auto

2
谢谢Tarsem!我尝试重新启动超过20次,但是没有运气.. ::
Sniper

1
安装到sdcard可以避免问题,但不能解决问题(请参见我的回答)–并且–您可以像这样轻松地将有问题的软件包安装到sdcard:pm install -s package.apk
Robert Siemer

2

即使有足够的内部存储器和SD存储器,我也遇到了这个问题。此解决方案仅适用于不会更新的应用程序,或者以前已安装在手机上且无法安装的应用程序。

似乎在某些情况下,以前的安装遗留了目录,新应用无法删除或覆盖这些目录。

首先要做的是尝试先卸载应用程序,然后重试。就我而言,这适用于几个应用程序。

下一步,您需要在手机上具有root访问权限:

使用文件管理器,转到/ data / app-lib并找到与该应用程序关联的目录。例如,点燃是com.amazon.kindle。删除这些。也转到/ data / data并执行相同的操作。

然后转到Play商店并重新安装该应用程序。就我而言,这适用于所有应用程序。


1

我遇到了同样的问题,可以通过使用App Cache Cleaner解决。

(HT:acejavelin @ Android论坛


1
实际上,这不是那么愚蠢。我在Galaxy S2中遇到了这个问题,它有足够的内存来安装该应用程序,并释放了约87MB的内存。但这并不能解决整个问题。
艾德先生

嗯 也许它可以解决我的问题。我尝试了此问题的答案中的建议(安装在sdcard上,拨打*#9900#“ Delete dumpstate / logcat”,运行Cache Cleaner),最初它仍然不起作用,即更新现有应用程序时出错(错误确切地说是902)。但是在手机重启后,它可以正常更新了!现在看来还可以。
埃德先生

1

我尝试了一些建议的解决方案,但没有一个对我有用。经过一番研究,我偶然发现了一个暗示,一些应用程序从移动/data/app/system/app。这释放了足够的空间来安装新应用和更新现有应用。

我可以推荐免费的实用程序SystemCleanup来移动应用程序。


遇到同样的问题,SystemCleanup帮助了我。我建议!
Eran Egozi 2014年

1

这是最容易的事情。去settings 寻找storagememory触摸它并寻找cached data。触摸它,然后从那里清除您的数据。简单!!!


0

该应用程序是否必须安装在内部存储中?如果您没有运行任何服务,则可以尝试将其安装在外部存储上。这可以通过在清单中添加以下代码来完成:

 manifest  
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:installLocation="preferExternal".....

在大多数情况下,这通常适用于Android 2.2及更高版本。如果您的应用安装在外部存储设备上,请确保其可以正常运行。您会很好地了解可以在以下位置的外部存储上安装哪种类型的应用程序:应用程序安装位置”


0

当涉及面设备时,设备的行为似乎与另一组设备不同。

我从不同的人那里听到的一些奇怪的观点是:

  • 拔出电源后重新启动设备
  • 从设备中删除一些应用程序,并至少释放100 MB
  • 尝试从命令行安装您的应用, ./adb install ~Application_path
  • 将您的应用程序移至SD卡存储,或将其默认设置为Android清单文件中的SD卡, android:installLocation="preferExternal"
  • 您在Raw文件夹中获得了很多内存来获取东西,该文件夹将在手机内存中安装一个副本,同时恢复APK文件,并且设备没有足够的内存来加载它们
  • 扎根您的设备并安装一些优质的ROM,这有助于使设备知道其剩余内存。

希望其中之一与您有关!;)


0

操作系统将保留您拥有的大部分可用空间。最好,最简单的解决方法是将您的应用移至外部存储。这将为您释放大量空间。


0

有些应用程序需要重新启动才能完全安装。Android只是说由于某种原因它的内存不足-应该说它需要重启才能完成安装。尝试一下-重启后它将完全自动安装。


0

我自己解决了这个问题。但是,内部和SD内存显示了很多可用空间。这是手机内存快用完的问题。

因此,我将许多应用程序从手机内存移动到内部内存,以释放手机内存:设置 -> 存储 -> 应用程序(在内部存储部分下)-> 内部选项卡

这些是未被检查的,并且正在占用手机内存的空间。

单击应用程序(一个接一个),然后单击按钮:“移至内部存储”。

这样,一旦释放了手机内存中的大量空间,就不会出现错误。


0

卸载一些应用程序后,我可以安装新的应用程序...

我认为操作系统会计算运行所有应用程序所需的总内存。如果不合适,则显示“有足够的内存”。


0

我在库存ROM(4.2.2 ME2)上的Galaxy S4(i9505)上遇到了相同的问题。我有这样的可用空间:473 MB上/data,344 MB上/system,2 GB上/cache。我从Play商店下载的任何内容都收到了免费的spate错误(小应用程序,2.5 MB),我检查了LogCat,它说:“由于可用空间不足,取消了ABC的下载”。

然后,我释放了/data600 MB的可用空间,现在可以正常工作了,可以下载并安装应用程序;)。因此,似乎此ROM需要更多的可用空间才能正常工作...



0

我没有找到一个可行的免费解决方案,但找到了一个解决方案:我使用了非免费版的Titanium备份,单击上下文按钮,然后选择检查应用程序占用的内存。找到下载应用程序,您将看到它已为其缓存分配了一定的空间。清除数据是您想要的选项。


0

万一包名称太长(> 128个字符),我也会收到相同的错误消息。只需使用较短的名称即可解决此问题。


0

我的内部空间超过2 GB,但无法从Google Play安装/更新应用程序或手动。

无论是什么原因,擦除缓存分区都解决了我的目的。

步骤:恢复->擦除缓存分区->立即重启系统


0

如果您具有root用户,请删除路径上的所有文件夹:

/data/app-lib/

然后重新启动设备。

我多次遇到此问题,并且每次都对我有用。它甚至有一个XDA线程

我写了所有文件夹,因为如果一个应用程序有问题,那么其他应用程序也很有可能遇到这个问题。另外,仅查找有问题的应用程序的文件夹很烦人。


0

转到“设置”,“应用”,“全部”,然后卸载Google Play商店。这将替换为旧版本,然后您可以下载而不会出现“存储不足错误”对我有用


-1

我一直遇到这个问题,并使用Titanium Backup 清理了Dalvik缓存。您需要将手机植根。这样做之后,我就可以更新Swiftkey和Beautiful Widgets。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.