【问题标题】:Application crash on SD card removal移除 SD 卡时应用程序崩溃
【发布时间】:2013-12-14 02:34:40
【问题描述】:

我的应用程序有 android:installLocation="preferExternal" 。应用程序安装并启动后,应用程序的后台服务将启动。当我硬移除 SD 卡时,应用程序崩溃,为应用程序类(扩展 android.app.application)提供 "ClassNotFoundException"

以下是错误日志:

java.lang.RuntimeException: 无法实例化应用程序 com.sample.MyApplication: java.lang.ClassNotFoundException: com.sample.MyApplication in loader dalvik.system.PathClassLoader[/mnt/asec/com.com.sample-1 /pkg.apk]

如何以可以避免崩溃的方式处理此问题?

【问题讨论】:

  • 对我来说似乎相当明显。如果您删除了正在运行您的应用程序的卡,它应该如何继续?应用程序在运行时不会整体加载到内存中。
  • 您正在删除已安装所有用于运行该应用程序的文件的媒体,这不是很明显会崩溃吗?
  • 只需将您的应用从设置移至手机,然后重试..

标签: java android memory android-sdcard


【解决方案1】:

我认为您使用的将数据存储在外部存储 SD 卡中的应用程序,我认为该应用程序崩溃了。甚至该应用程序已安装在我认为的 SD 卡中,同时尝试检索您的数据应用崩溃...

而是尝试通过转到应用程序的设置将应用程序从 SD 卡移动到手机内存

【讨论】:

    【解决方案2】:

    如果您声明“preferExternal”,您要求将您的应用程序安装在外部存储上,但系统不保证您的应用程序将安装在外部存储上。如果外部存储已满,系统会将其安装到内部存储上。用户还可以在两个位置之间移动您的应用程序。

    如果您声明“auto”,则表明您的应用程序可能安装在外部存储上,但您没有安装位置的偏好。系统将根据几个因素决定在哪里安装您的应用程序。用户还可以在两个位置之间移动您的应用程序。 Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      相关资源
      最近更新 更多