【问题标题】:Xamarin.forms: No space left on the device while using Android emulatorXamarin.forms:使用 Android 模拟器时设备上没有剩余空间
【发布时间】:2018-02-12 03:49:36
【问题描述】:

我一直收到

设备上没有剩余空间

尝试从我的 Xamarin.Forms 解决方案运行 Android 项目时出现错误消息。这是下面的错误消息。这适用于物理设备,但不适用于模拟器。有什么我可以尝试的吗?

Detecting installed packages
    Target device is x86.
    Installing the Mono shared runtime (debug - 1503094152)...
    10% ... 3520kb of 35036kb copied
    20% ... 7040kb of 35036kb copied
Installing shared runtime
    30% ... 10560kb of 35036kb copied
    40% ... 14016kb of 35036kb copied
    50% ... 17536kb of 35036kb copied
    60% ... 21056kb of 35036kb copied
    70% ... 24576kb of 35036kb copied
    80% ... 28032kb of 35036kb copied
    90% ... 31552kb of 35036kb copied
     Deployment failed
    Mono.AndroidTools.AdbException: No space left on device
      at Mono.AndroidTools.Util.AggregateAsyncResult.CheckError (System.Threading.CancellationToken token) [0x0002a] in /Users/builder/data/lanes/4986/28510831/source/monodroid/tools/msbuild/external/androidtools/Mono.AndroidTools/Util/AggregateAsyncResult.cs:72 
      at Mono.AndroidTools.Adb.AdbSyncClient.EndPush (System.IAsyncResult result) [0x00006] in /Users/builder/data/lanes/4986/28510831/source/monodroid/tools/msbuild/external/androidtools/Mono.AndroidTools/Adb/AdbSyncClient.cs:771 
      at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in /private/tmp/source-mono-d15-3/bockbuild-d15-3/profiles/mono-mac-xamarin/build-root/mono-x64/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550 
    /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.Debugging.targets(516,2): error : No space left on device
    Touching "obj/Debug/upload.flag".
Done building target "_Upload" in project "Articles.Droid.csproj".

Done building project "Articles.Droid.csproj".
Build succeeded.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.Debugging.targets(516,2): error : No space left on device
    0 Warning(s)
    1 Error(s)

【问题讨论】:

  • 您是否尝试过增加模拟器映像中的可用空间?
  • 不知道该怎么做。我对 xamarin.forms 很陌生
  • 它与 XF 无关。它纯粹是模拟器的一个功能,它是一个谷歌应用程序。 SO 和网络上的其他地方有很多帖子解释了如何做到这一点。
  • 顺便说一句,我使用的是 Visual Studio for Mac 而不是 Eclipse。

标签: xamarin.forms android-emulator


【解决方案1】:

转到您的终端并输入:

$ [[path-to-android-sdk]]/tools/android list avd

这将显示一个窗口,其中包含您已配置的所有 AVD(Android 虚拟设备)。找到你正在使用的那个并写下它的名字。

接下来,回到你的终端并输入:

$ open -a TextEdit ~/.android/avd/[[name of your avd]].avd/config.ini

这将使用 AVD 的配置文件打开 TextEdit。现在查找并更改或添加此行:

data.dataPartition.size=2048m

接下来,回到你的终端并输入:

$ open -a TextEdit ~/.android/avd/[[name of your avd]].avd/hardware-qemu.ini

这将使用硬件的配置文件再次打开 TextEdit。现在查找并更改或添加此行:

data.dataPartition.size=2048m

然后点击设备管理器中的“恢复出厂设置”。然后启动模拟器,它找到了正确的存储大小。

就是这样。你准备好了!

【讨论】:

  • 看起来它不适用于 2048m 以外的值
  • 我尝试增加尺寸,并且工作正常。此外,谷歌说:“数据分区大小 - 以字节为单位指定用户数据分区的大小。如果此值是一个整数,它以字节为单位指定大小。您还可以通过附加以千字节、兆字节和千兆字节为单位指定大小K、M 或 G 的值。最小大小为 9M,最大大小为 1023G。 docs.microsoft.com/en-us/xamarin/android/get-started/…
  • 所以我打开 Android 设备管理器(通过 VS),选择有分区大小问题的设备,按编辑,我查找属性“disk.dataPartition.size”,然后我将值设置为“4096M”。 (如果您没有找到该属性,您可以添加它)。保存更改,运行 Android Emulator 并检查存储大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2012-01-14
  • 2012-05-15
  • 2018-11-22
  • 2015-07-21
相关资源
最近更新 更多