Android 系统下:普通应用无缝安装,Launcher 应用安装遭遇罕见障碍解析
目录
一、场景
1.1 错误分析
1.2 解决方法尝试
1.2.1 检查应用的安装位置
1.2.2 使用ADB安装
1.2.3 检查APK的签名
1.2.4 检查可用的内部存储空间
1.2.5 将应用程序安装到设备的内部存储空间
1.2.6 重置设备(谨慎使用)
1.2.7 获取Root权限(谨慎使用)
1.3 结束(解决方案)
往期推荐
一、场景
需要给一台 Android 10 设备(智能一体机,类似下图) 安装一个主屏幕应用。
普通应用:这些应用通常执行特定的功能或任务,如社交媒体、游戏、办公软件等。它们专注于为用户提供某一方面的服务或体验,并不直接参与系统级别的用户界面管理。
主屏幕应用(Launcher):作为Android设备的用户界面管理器,Launcher负责管理和呈现用户界面,包括桌面、应用程序抽屉和部件。它允许用户自定义手机的主屏幕、图标、小部件布局以及一些基本功能,如滑动效果和屏幕转换。每个Android设备通常都会预装一个默认的Launcher,但用户可以从应用商店下载并安装第三方Launcher来获得更多的个性化选项和功能。
安装普通应用没有问题,如果安装主屏幕应用报错:
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_INVALID_INSTALL_LOCATION
List of apks:
[0] 'xxxxxx.apk'
Installation failed due to: 'Failed to commit install session 1106047452 with command package install-commit 1106047452. Error: INSTALL_FAILED_INVALID_INSTALL_LOCATION: Cannot install updates to system or vendor apps on sdcard'
Retry
Failed to launch an application on all devices
1.1 错误分析
通常发生在尝试更新或安装一个被系统或设备制造商标记为系统或供应商级别的应用程序时,而你试图将其安装到SD卡上。这是一种安全措施,目的是防止对系统或供应商应用程序进行未经授权的更改。
在Android设备上,不是所有的应用都可以被安装到外部存储(如SD卡),尤其是系统应用或具有特殊权限的应用。
1.2 解决方法尝试
1.2.1 检查应用的安装位置
确保你没有尝试将应用安装到SD卡。在Android设备上,通常可以在“设置”->“应用”->选择应用->“存储”中查看和修改应用的安装位置(如果允许)。但是,对于系统或供应商应用,这个选项可能不可用。
注:我这个软件安装没问题,桌面应用被限制了,此方法对我无效。
1.2.2 使用ADB安装
使用ADB(Android Debug Bridge)来安装应用,尝试使用 -r 参数(允许替换已存在的应用)但不指定安装位置(即不使用 -s 参数)。通常,使用如下命令安装应用:
adb install -r xxxx.apk
注:如果没有root权限,这个命令只能用于安装或更新非系统应用。跟1.2.1 类似,此方法对我无效。
1.2.3 检查APK的签名
确保你正在尝试安装的APK的签名与已安装的系统或供应商应用的签名相匹配。如果签名不匹配,你将无法更新该应用(如果是可卸载),如果被内置为系统应用,即时卸载也无法安装。遇到过类似的问题,通过重装系统解决了。
1.2.4 检查可用的内部存储空间
确保手机的内部存储空间足够容纳更新。删除不需要的文件或应用程序以释放空间。
1.2.5 将应用程序安装到设备的内部存储空间
将应用程序安装到设备的内部存储空间:在AndroidManifest.xml文件中,确保您的应用程序的android:installLocation属性设置为internalOnly。这将强制应用程序仅安装在设备的内部存储中,而不是SD卡上。
注:跟1.2.1 类似,此方法对我无效。
1.2.6 重置设备(谨慎使用)
如果以上方法都不可行,并且问题持续存在,可能需要考虑重置设备到出厂设置。请注意,这将清除所有数据和设置,因此请确保先备份重要数据。
1.2.7 获取Root权限(谨慎使用)
如果你有Root权限,你可以尝试将应用直接推送到系统分区或使用具有root权限的APK安装器。但请注意,这样做可能会带来安全风险,并可能影响设备的稳定性。
1.3 结束(解决方案)
该问题是设备在操作系统层面上禁止非指定包名的桌面应用安装。我将系统自带桌面移除,也无法安装的自己的桌面应用,重新安装系统自带桌面成功。
解决方案1:设备厂商允许安装自己的桌面(厂商收费略高)。
解决方案2:自己刷机,重新烧录一下操作系统(当前采用方式)。
解决方案3:获取Root权限,自己玩可以,商用肯定不合适。
往期推荐
Android The emulator process for AVD XXX has terminated.-CSDN博客文章浏览阅读2.1w次,点赞8次,收藏35次。1、释放PC空间(可能磁盘空间不足)2、将CPU/ABI设置从“ armeabi-v7a ”更改为“ x86_64 ”3、清除模拟器的数据解决了这个问题,然后重新启动了模拟器4、AVD卸载重装,并重启AS5、版本过高,降级模拟器版本。6、检查是否含有中文。_the emulator process for avdhttps://shuaici.blog.csdn.net/article/details/120164749Android Studio无法连接模拟器(真机)-CSDN博客文章浏览阅读4.9k次,点赞3次,收藏9次。本文主要介绍了在Android开发过程中遇到的adb连接问题及其解决方案,包括找不到模拟器或真机、adb命令报错如'command not found'、'Operation timed out'、'device not found'和'protocol family unavailable'等错误的处理方法,提供了详细的步骤和命令示例。https://shuaici.blog.csdn.net/article/details/116780929