尝试在模拟器上安装第二个Flutter应用程序时出现错误。

72

我创建了一个简单的Flutter应用并在Android模拟器上运行它。 它有效地工作。现在我又创建了另一个应用程序,但是当我尝试在模拟器上运行它时,我遇到了以下问题:

 Error: ADB exited with exit code 1
adb: failed to install /Users/Admin/Development/flutter/flutter_app_test/build/app/outputs/apk/app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]
Error launching application on Android SDK built for x86.

一旦我从模拟器中删除了第一个应用程序,我就能够安装第二个应用程序并成功运行它。

因此,每当我在模拟器上安装一个Flutter应用程序,安装另一个应用程序将导致相同的错误。

有没有办法克服这个限制?或者这是一个错误吗?

10个回答

85

你可能配置的存储空间太小,当模拟器安装应用程序时耗尽存储空间导致出现此错误。

要么修改模拟器配置,要么在安装另一个应用程序之前先卸载。

在Android Studio中打开Android虚拟设备(AVD)管理器,编辑模拟器并增加“内部存储”,然后重新启动模拟器。


2
我在模拟器中有2048MB的内部存储空间。这对于多个Flutter应用程序来说不够吗? - AlexKost
这取决于你的应用程序,但通常情况下在调试模式下,应用程序的大小很容易增加到正常大小的10倍。 - Günter Zöchbauer
应用程序就像默认的计数器应用程序一样简单。无论如何,感谢您的建议! - AlexKost
2
你可以运行 flutter build apk 命令并检查 build 目录下的 debug 构建输出以及其大小。对于一个简单的应用程序,它可能大约为70M。因此,如果你有2G的可用空间,则应该能够安装几个应用程序。很难从这里确定你的系统到底发生了什么。 - Günter Zöchbauer
对我来说,apk大小为15MB,而模拟器的内部存储大小为10GB。这很奇怪... 我不得不在模拟器上卸载另一个应用程序,现在可以安装我的Flutter应用程序了。 - Tinh Huynh
2
完美的答案。最重要的部分是重新启动模拟器,否则它仍将具有与之前相同的存储量。 - Jason Braithwaite

38

在Android Studio中

  1. 工具 > AVD管理器
  2. 编辑虚拟设备
  3. 显示高级设置
  4. 增加内部存储

内部存储


4
非常有效且简洁的答案。读者可能会注意到(至少在Mac上),需要滚动屏幕才能相对不易找到“内部存储”选项。 - Michael Easter
它像魔法一样运行良好!我正在使用Mac。 - Anil Gupta
注意,2022年4月3日,它不再被称为AVD管理器,现在它是设备管理器。 - aca
注意:在macOS上的Android Studio 2021.2.1 Patch 1中,“显示高级设置”中没有内部存储选项。有什么线索吗? - Ankit Jain

19

释放空间

释放模拟器/虚拟设备使用的空间

  1. 打开 Android Studio
  2. 工具 > AVD 管理器
  3. 点击模拟器/虚拟设备右侧的 菜单 图标
  4. 选择 擦除数据
  5. 选择

这样你就会看到空间已被释放。

为了更清晰地了解,请参见下面的图像,3+ GB 的空间已被释放至 1.0 GB。

输入图像说明


谢谢!这是最好的答案。我已经添加了10GB,但还不够。然后我清除了数据,这将能够从模拟器中删除5-6 GB的垃圾数据。 - Tharindu Ketipearachchi

6

检查模拟器上的可用空间 - adb shell

此操作需要您的Android模拟器正在运行。

打开Windows命令提示符/Mac终端。

进入adb.exe程序所在的目录。(如果已将其添加到PATH中,则不需要此步骤。)

在Windows上(示例位置):

cd c:\Android\Sdk\platform-tools\

如果您只有一个正在运行的模拟器,则无需指定要通过adb shell连接的模拟器,只需运行:

adb shell

如果您有多个模拟器,则可以使用以下命令找到名称并指定哪一个进行连接:

adb devices显示正在运行的模拟器

enter image description here

连接到模拟器

adb -s emulator-5554 shell

然后会在模拟器内看到shell提示符

enter image description here

因权限受限,需使用以下命令将用户切换到root账户:

su

使用磁盘文件系统命令查看磁盘使用情况与可用空间

df

enter image description here

如果您的空间不足,/data上的Use%将会很高。您需要释放/data上的空间。

通过删除已安装的应用程序来释放空间...

在adb shell中删除应用程序

您的应用程序位于/data/data中:

cd /data/data

通过反转目录列表排序顺序,可以更轻松地查看您的应用程序并使其显示在底部:

ls -ltr

enter image description here

您可以直接使用rm -r在此处删除您的应用程序。在上述示例中,应用程序存储在com.mobdev.user_interface_intro下:

rm -r /data/data/com.mobdev.user_interface_intro

如果您想释放模拟器的空间,可以重复这个步骤删除其他应用程序。

在模拟器中删除应用程序

您也可以在运行的模拟器内部删除应用程序。点击方形按钮> Android设置(齿轮图标)

Square button > Gear Icon

点击应用程序和通知

enter image description here

找到并点击您的应用程序

enter image description here

点击卸载

enter image description here

如有需要,请重复此操作以卸载其他应用程序以释放模拟器空间。


2
  1. 打开AVD管理器
  2. 清除数据(从模拟器中删除数据)
  3. 打开模拟器
  4. 尝试运行应用程序
注:Original Answer翻译成"最初的回答"

1
Android Studio ==> 选择你的虚拟设备 ==> 清除数据 这对我很有帮助

0

我从模拟器中删除了一些应用程序,但它没有起作用。

但是我重新启动了模拟器,然后它就可以了。


0
我已经遇到过这个问题好几次了。通常我会打开终端,首先运行flutter clean来清除所有不必要的东西(构建、dart_tool等),然后再运行flutter pub get来重新获取所有依赖项。

0
我在多个项目上多次运行模拟器后遇到了同样的问题。我删除了一个'qcow2'文件,现在模拟器至少完美运行。
C:\Users\admin\.android\avd\test_avd_29.avd\userdata-qemu.img.qcow2
当我打开这个文件时,我发现这个文件有1000000 KBytes,这对我来说看起来很奇怪,所以我删除了它,看看是否能解决问题,并且确实解决了问题。

-1

对我来说,编辑模拟器并增加“内部存储”然后重新启动模拟器是无效的。

以下是我成功的方法:

  1. 打开AVD管理器
  2. 删除当前的Android设备(我删除了所有设备)
  3. 添加一个新设备(我添加了一个32GB内部存储的设备)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接