2012-04-18 54 views
0

我想在Nexus One(2.3.6)設備上安裝應用程序。 APK的大小超過100MB,因爲它包含大量資產。當我安裝時,我得到以下例外。Android內存需要在外部存儲上安裝apk嗎?

[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的存儲容量,這足以容納100MB。

這是怎麼回事?我注意到,當我將apk尺寸縮小到可用內部存儲空間的尺寸以下時,一切運行良好;所以我可以得出的唯一有意義的結論是需要內部存儲器來將apk安裝到外部存儲器。

是否有其他人遇到同樣的問題?

編輯:確實,Google Play會將您的應用限制爲50 MB。但這種限制純粹是Google Play的限制,並不是Android apk的限制。例如,亞馬遜允許任何尺寸的apk。您可以使用Android開發工具在您的手機上安裝一個尺寸爲60 MB的apk安裝程序。

回答

0

Android應用程序必須小於50MB。您可以避免此限制(請參閱此處:http://android-developers.blogspot.com/2012/03/android-apps-break-50mb-barrier.html,http://developer.android.com/guide/market/expansion-files.html),但僅限於擴展訪問。

+0

這不回答這個問題。 Google Play確實將您的應用限制爲50 MB。但這種限制純粹是Google Play的限制,並不是Android apk的限制。例如,亞馬遜允許任何尺寸的apk。您可以使用Android開發工具在您的手機上安裝一個尺寸爲60 MB的apk安裝程序。 – 2012-04-18 17:31:25

0

將資產置於應用程序之外。第一次使用(或安裝後)在外部存儲器上下載現在存儲在資產文件夾中的所有文件。

+0

感謝您提出解決方法;我知道如果需要,我可以解決這個問題。你能證實我看到的行爲是真實的嗎? – 2012-04-18 18:21:38

+0

我不明白你的問題。解決您的問題的方法我建議的作品 - 我使用它。我把所有的資源放在我的服務器上,當我的應用程序啓動時,我檢查是否需要下載。我通過閱讀一個xml文件來引用我需要的所有資源。如果我在xml中引用資源(圖像,聲音,字體等),我沒有在我的外部文件夾中,那麼我下載該資源。 – 2012-04-19 12:35:34

+0

我同意你的解決方法。我的問題是:從Android的行爲來看,似乎爲什麼Android操作系統會將apk複製到內部存儲器,然後再將其存儲到外部存儲設備中。這完全不是我期望它的工作原理。如果應用程序聲明它更喜歡外部存儲,則Android可以將其安裝到外部存儲,而無需先複製到內部存儲。 – 2012-04-19 20:05:06