2

问题 我正在开发一个 Android 应用程序,由于某种原因,在我的 Android 设备上尝试安装软件包时出现“未安装应用程序”错误。此应用程序之前已成功安装。

为了调查,我去了基础知识:

  1. 从设备上卸载我的应用
  2. 确保选中安全>未知来源
  3. 使用随机包名创建了一个 HelloWorld 应用程序并尝试在设备上安装:成功
  4. 创建了一个与我有问题的项目具有相同包名的 HelloWorld 应用程序:FAILED

所以我的猜测是我的包名指向了一些没有正确卸载的东西。

问题 有没有办法确保 Android 设备上与包名称相关的所有数据都被删除?

上下文 - 使用 AIDE 应用程序直接在 android 中开发。由于我正在旅行,当时无法使用任何计算机。设备: - 三星 Galaxy Notes 10 2014 - Android 4.3(未植根)

4

1 回答 1

1

发生这种情况的一个原因是,在上次卸载期间,并非所有相关的应用程序文件都已删除。我不知道为什么会发生这种情况,但我知道它有时会发生。

可能存在由不再分配给应用程序的用户/组 ID 拥有的文件。当您现在安装具有相同包名的应用程序时,它将获得一个新用户/组,因为它不是更新,而是全新安装。由于您的应用程序仍然具有相同的包名称,因此它希望创建相同的文件,但它不能,因为上一次安装中仍然存在一个或多个文件/目录,并且它无法覆盖/删除它们,因为它缺乏权限,因为它们由不同的用户/组 ID 拥有。

您可以在以下位置检查与您的包名相关的文件/目录,但我怀疑您是否能够在没有 root 访问权限的情况下做很多事情。

  • /数据/数据
  • /数据/应用
  • /data/app-asec
  • /数据/应用程序库
  • /数据/dalvik缓存
  • /数据/本地/tmp
  • /mnt/asec
  • /mnt/obb
  • /mnt/sdcard/Android/obb

(完全披露:这是我的应用程序)

使用 root,SD Maid的“CorpseFinder”功能将检查此问题的最常见位置(请参阅设置)。

于 2014-03-29T14:52:16.993 回答