【问题标题】:Android app with specific package name cannot install无法安装具有特定包名称的 Android 应用
【发布时间】:2014-03-29 22:52:16
【问题描述】:

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

为了调查,我选择了基础知识:

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

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

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

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

【问题讨论】:

  • 我认为它在模拟器上运行良好?
  • 我认为,android 操作系统上的应用程序不应具有相同的包名称,例如:org.arya.lntts.MainActivity 作为应用程序一的启动器,并且不应将相同的包名称提供给不同的应用程序。请尝试增加你的 android:versionCode
  • @Sreekanthss:我正在使用 AIDE IDE 应用程序直接在 Android 上开发,所以没有模拟器。我正在旅行,所以无法使用电脑。
  • play.google.com/store/apps/details?id=com.gijoon.pkgnameviewer 试试这个应用,看看有没有像@PawanAryan 所说的现有应用
  • @PawanAryan:但是如果我先卸载该应用程序,我应该能够安装具有相同包名的任何其他应用程序。不?卸载应用程序时,Android 操作系统不应该删除对包名称的任何引用吗?

标签: java android package aide-ide


【解决方案1】:

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

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

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

  • /数据/数据
  • /数据/应用
  • /data/app-asec
  • /data/app-lib
  • /data/dalvik-cache
  • /data/local/tmp
  • /mnt/asec
  • /mnt/obb
  • /mnt/sdcard/Android/obb

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

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

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2021-11-30
    • 2013-11-26
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多