xamarin.android - 失败 INSTALL_FAILED_MEDIA_UNAVAILABLE

标签 xamarin.android

我已经为 Visual Studio 2010 安装了 JDK、Android SDK 和 Mono Android,我创建了一个空的解决方案,并且我启动了模拟器并在 Android 2.3.3 上运行——到目前为止一切都很好。

当我尝试将应用程序部署(F5)到模拟器时,它会连接到模拟器,并且一切正常,直到它开始“安装平台框架”。然后它加载了几分钟,最后抛出一个如下所示的异常:

enter image description here

我试过谷歌搜索它,但 INSTALL_FAILED_MEDIA_UNAVAILABLE 似乎没有在其他任何地方描述。

我不知道这是否是一个重要的细节,但在我的 PC 上,我已将我的主文件夹(文档、收藏夹、桌面等)重新映射到诸如“D:\Mikkel\Dokumenter”之类的文件夹。最初启动模拟器时似乎会引起一些问题,但在添加指向“D:\Mikkel.android”的环境变量“ANDROID_SDK_HOME”后,模拟器启动没有问题。

请指教。

最佳答案

确保您的设备中有足够的内部和外部可用空间。您可以使用以下命令确定可用空间:

$ adb shell df
Filesystem             Size   Used   Free   Blksize
/dev                   192M    32K   192M   4096
/mnt/asec              192M     0K   192M   4096
/mnt/obb               192M     0K   192M   4096
/system                145M   124M    20M   4096
/data                  196M   167M    29M   4096
/cache                  95M    32M    62M   4096
/mnt/sdcard              3G   177M     3G   32768

在上面的输出中,/data (默认安装位置)有 29MB 可用空间,而 /mnt/sdcard (SD 卡和外部安装位置)有 3GB 可用空间。

对于调试版本,您需要有大约 40MB 的可用空间(用于运行时包、平台包和应用程序)。 Release builds are significantly smaller ,但不能使用评估版本创建发布版本。

如果你的模拟器没有 SD 卡,那么 Android 会生成 INSTALL_FAILED_MEDIA_UNAVAILABLE 是合理的。错误。 (要将 SD 卡添加到您的模拟器,请启动 android 应用程序,转到虚拟设备,选择一个设备,单击编辑,然后查看 SD 卡部分。)

对 Android 的粗略研究表明 DefaultContainerService.java是控制因素,特别是 DefaultContainerService.recommendAppInstallLocation() ,并且如果您的内部空间不足并且包指定 auto (就像 Mono for Android 一样)并且 SD 卡不可用( status.equals(Environment.MEDIA_MOUNTED)false ),然后是 RECOMMEND_MEDIA_UNAVAILABLE返回,翻译成INSTALL_FAILED_MEDIA_UNAVAILABLE .这对我来说仍然很奇怪(RECOMMEND_FAILED_INSUFFICIENT_STORAGE 更有意义吗?),但这似乎是正在发生的事情。

关于xamarin.android - 失败 INSTALL_FAILED_MEDIA_UNAVAILABLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815625/

相关文章:

android - 在关闭应用的情况下调用 Xamarin.Forms 依赖服务

xamarin - 如何从 Xamarin Android C# 项目调用返回字符串选项的 PCL 中的 F# 方法?

android - 罢工 html 标签不呈现在 EditText 与 TextFormatted

c# - Android:如何构造*完整*路径以传递给 Intent.CreateChooser

Android Intent 选择器仅显示电子邮件选项

c# - Xamarin Sqlite-Net Insert(对象引用未设置为对象的实例)

xamarin.forms - 错误 400 : redirect_uri_mismatch when distributing Xamarin Forms App

android - REQUEST_CHECK_SETTINGS 的值是多少?

android - xamarin.android 应用程序签名不起作用

c# - 将 RTC_WAKEUP 与 Xamarin 结合使用