Android BUG 之 The application could not be installed: INSTALL_FAILED_TEST_ONLY 无法安装应用 -15 问题

问题描述:

在vivo V1941A上手机直连Android studio 运行 “应用程序”。安装未成功。提示

The application could not be installed: INSTALL_FAILED_TEST_ONLY

List of apks:
[0] 'E:\Work\kyz_app_2023\app\build\outputs\apk\debug\app-debug.apk'
Installation failed due to: 'null'
Retry


项目背景

由于项目的特殊性他是在专有设备上运行的


原因分析:

这里不得不提到一个属性 android.injected.testOnly ,默认情下,android.injected.testOnly属性的值为true,表示只允许在测试环境中运行测试。这样可以确保测试代码不会被包含在发布版本中。

所以,在新设备上,系统可能识别你为正式环境, 就有可能出现安装失败的问题,这时设置android.injected.testOnly=false,表示允许在正式环境下运行测试。这意味着您可以在发布版本中运行测试代码,而不仅仅是在开发和调试阶段。设置android.injected.testOnly=false的主要用途是在特定情况下,例如需要在生产环境中运行一些关键的单元测试或集成测试,或者验证发布版本的稳定性和兼容性。但请注意,在实际发布应用之前,建议将android.injected.testOnly属性设置为true,以确保不会包含测试代码。

但有时候 设置android.injected.testOnly=false 还是会报安装失败,这是由于系统默认编译还是原有apk,这是你可以清楚下系统缓存,也可以调整下编译方式


解决方案:

1 设置 android.injected.testOnly=false

2 清除缓存 or 切换构建方式

       

切换构建方式,这里在 Android studio 中 Deploy 设置 apk from app bundle 然后应用即可。

默认情况下,设备连接上Android Studio之后,运行时打的包是apk。所以我们需要配置一下,改成运行时先打app bundle,然后再从app bundle中提取出该设备需要的配置apk,再组装成一个新的apk并签名,随后安装到设备上

第一选项 default apk 为默认方式,这里说一下两者的作用以及区别

  1. APK from app bundle(来自应用程序包的APK):这个选项允许您使用Android App Bundle(AAB)格式来构建和部署应用程序。Android App Bundle是一种新的发布格式,它允许根据设备配置和语言等因素,动态生成最优化的APK。使用AAB格式进行构建可以减小应用的大小,并提高应用程序的更新效率。当选择这个选项时,Android Studio会自动将AAB文件转换为设备可安装的APK文件,并将其部署到目标设备。

  2. Default APK(默认APK):这个选项使用传统的APK文件格式来构建和部署应用程序。在选择这个选项时,Android Studio会直接构建一个APK文件,并将其部署到目标设备上。

区别:

  • APK from app bundle能够根据设备配置和语言等因素动态生成最优化的APK,以减小应用的大小并提高更新效率。这样可以提供更好的用户体验,并减少设备上的存储空间占用。
  • Default APK则直接构建一个传统的APK文件,不会进行动态优化和缩减。这种方式适用于传统的应用程序发布和部署,没有使用Android App Bundle的优化特性。

选择"APK from app bundle"还是"Default APK"取决于您的需求和发布策略。如果您希望充分利用Android App Bundle的优势,并提供最佳的用户体验,那么选择"APK from app bundle"是一个好的选择。但是,如果您只关注传统的APK构建和部署,或者需要将应用程序部署到不支持Android App Bundle的渠道,那么选择"Default APK"更适合。

总结

同样的问题在不同设备不同环境可能产生不一样的场景,如有问题请留言私信,欢迎指教

青山不改,绿水长流 有缘江湖再见 ~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值