2013-11-28 34 views
-2

我的應用程序有android:installLocation =「preferExternal」。應用程序安裝並啓動後,應用程序的後臺服務將啓動。當我硬刪除SD卡時,應用程序崩潰,給應用程序類(擴展android.app.application)提供「ClassNotFoundException」刪除SD卡上的應用程序崩潰

以下是錯誤日誌:

了java.lang.RuntimeException:無法實例化應用com.sample.MyApplication:拋出java.lang.ClassNotFoundException:com.sample.MyApplication裝載機dalvik.system.PathClassLoader [/mnt/asec/com.com.sample-1/pkg.apk]

這怎麼處理,這樣的方式,可以避免崩潰?

+2

似乎對我來說很明顯。如果您從應用程序運行的卡中取出卡,它應該如何繼續?運行時應用程序不會作爲整體加載到內存中。 – PMF

+0

您正在移除所有運行該應用程序的文件已安裝的媒體,是不是很明顯,它會崩潰? – Techfist

+0

只需將您的應用從設置移動到手機,然後再試一次。 –

回答

0

我認爲你使用的應用程序將數據存儲在外部存儲器SD卡中,即我認爲應用程序崩潰。甚至應用程序已安裝在SD卡中,我認爲並試圖檢索數據你的應用程序崩潰...

而是嘗試通過將應用程序

0

的設置如果申報「preferExternal」,您要求您的應用程序可以在外部安裝到移動從SD卡到手機內存的應用程序存儲,但系統並不保證您的應用程序將安裝在外部存儲上。如果外部存儲器已滿,則系統會將其安裝在內部存儲器上。用戶也可以在兩個位置之間移動你的應用程序。

如果聲明「自動」,則表明您的應用程序可能安裝在外部存儲器上,但您沒有安裝位置的首選項。系統將根據幾個因素決定應用程序的安裝位置。用戶也可以在兩個位置之間移動你的應用程序。 Source