欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

彻底解决 INSTALL_FAILED_TEST_ONLY安装失败的问题

程序员文章站 2022-03-11 21:57:36
本文将从原理分析、多种解决思路,彻底解决Android Studio开发调试中Installation did not succeed. The application could not be installed: INSTALL_FAILED_TEST_ONLY安装失败的问题。...

安装失败


在使用Android Studio进行apk调试时,某些机器(例如vivo)会出现安装失败的问题。

错误提示:

彻底解决 INSTALL_FAILED_TEST_ONLY安装失败的问题

原因分析


Android Studio 3.0之后,在打包生成debug apk时,在apk的manifest文件的application标签里自动添加 android:testOnly="true"属性。

testOnly属性

android:testOnly=“true” 这个标记原本是用来标记测试用的,所以带这个标记的包一般情况下是不能安装上的,需要使用特殊的方式安装(添加-t标志)。

反编译后的apk的manifest文件

我们反编译apk文件,查看AS是否自动添加了android:testOnly="true"属性。
彻底解决 INSTALL_FAILED_TEST_ONLY安装失败的问题

从截图中我们看到,确实是添加了该属性。

解决方法


好了,问题既然找到了,下面就来看如何进行解决。

既然是标志位的问题,那就有2种解决思路:第一种,把标记位去掉;第二种,使用特殊方式安装;第三种,修改标记位,将true改为false。

去掉标记位

通常,我们使用AS调试,直接点击绿色三角形运行程序,这样打出来的apk包是含有标记位的。
彻底解决 INSTALL_FAILED_TEST_ONLY安装失败的问题

现在我们要去掉它。

  1. 方法一:使用AS菜单Build->Make Project来编译项目,生成的apk是无该标记位的。
  2. 方法二:使用菜单Build里面的Build APK(s),生成的apk也是无该标记位的。

使用特殊方式安装

我们可以使用adb命令进行安装,添加-t标记:

adb install -t simpledemo-debug.apk 

其实直接在AS中,点击绿色三角形,也是会添加-t标记的。

但是,该方法不是所有机型都有效,我在vivo的某个机型中,还是会报INSTALL_FAILED_TEST_ONLY的错误。

修改标记位的值

在项目根目录下,找到gradle.properties文件,并打开。

添加如下代码:

android.injected.testOnly=false 

它会全局设置项目中的所有关于testOnly的标记值,这里改为false即可。

ps:其实这几种方法中,感觉最后一种最简单,使用方便。

本文地址:https://blog.csdn.net/u011578734/article/details/108156219

相关标签: IDE