【问题标题】:Android memory needed to install apk on external storage?Android内存需要在外部存储上安装apk吗?
【发布时间】:2012-04-18 16:32:26
【问题描述】:

我正在尝试在 Nexus One (2.3.6) 设备上安装应用。 APK 的大小超过 100 MB,因为它包含大量资产。安装时出现以下异常。

[2012-04-17 23:26:18] 无法在设备“[redacted]”上安装 [redacted].apk:设备上没有剩余空间 [2012-04-17 23:26:18] com.android.ddmlib.SyncException:设备上没有剩余空间 [2012-04-17 23:26:18] 发射取消

我已明确表示我希望将 apk 安装在外部存储设备上,即 SD 卡上。当我尝试使用较小的 apk 安装相同的应用程序时,我确认它确实安装在 SD 卡上。 SD 卡有超过 3GB 的存储空间,足以容纳 100 MB。

发生了什么事?我注意到当我将 apk 大小减小到低于可用内部存储的大小时,一切正常;所以我能得出的唯一有意义的结论是需要内部存储器才能将 apk 安装到外部存储。

有没有其他人遇到过同样的问题?

编辑:Google Play 确实将您的应用程序限制为 50 MB。但是这个限制纯粹是 Google Play 的限制,并不是安卓 apk 的限制。例如,亚马逊允许任何大小的 apk。您可以通过使用 Android 开发工具在手机上安装大小为 60 MB 的 apk 来尝试此操作。

【问题讨论】:

    标签: android mobile apk android-sdcard


    【解决方案1】:

    Android 应用程序必须小于 50MB。您可以避免此限制(请参见此处:http://android-developers.blogspot.com/2012/03/android-apps-break-50mb-barrier.htmlhttp://developer.android.com/guide/market/expansion-files.html),但仅限于扩展 apk。

    【讨论】:

    • 这没有回答问题。 Google Play 确实将您的应用程序限制为 50 MB。但是这个限制纯粹是 Google Play 的限制,并不是安卓 apk 的限制。例如,亚马逊允许任何大小的 apk。您可以通过使用 Android 开发工具在手机上安装大小为 60 MB 的 apk 来尝试此操作。
    【解决方案2】:

    将资产放在应用程序之外。首次使用(或安装后)将您现在存储在资产文件夹中的所有文件下载到外部存储上。

    【讨论】:

    • 感谢您提出解决方法;我知道如果需要,我可以解决这个问题。你能确认我看到的行为是真实的吗?
    • 我不明白你的问题。我建议的解决问题的方法有效 - 我使用了它。我将所有资源都放在我的服务器上,当我的应用程序启动时,我会检查是否需要下载一些东西。我通过读取包含我需要的所有资源的引用的 xml 文件来做到这一点。如果我在 xml 中有对外部文件夹中没有的资源(图像、声音、字体等)的引用,那么我下载该资源。
    • 我同意您的解决方法有效。我的问题是:从 Android 的行为来看,似乎 Android 操作系统会先将 apk 复制到内部存储,然后再将其存储到外部存储。这完全不是我期望的工作方式。如果应用声明它更喜欢外部存储,Android 可以将其安装到外部存储,而无需先复制到内部存储。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    相关资源
    最近更新 更多