INSTALL_FAILED_TEST_ONLY [android studio 3]

android studio 相关说明 | 2018-09-27 17:27

近期常有同事遇到用Android Studio 安装 apk的时候报错:INSTALL_FAILED_TEST_ONLY,解开报错的apk包查看发现,明明没有配置testOnly属性,甚至是强制配置testOnly=false,但是生成的包中依然会有testOnly=true,导致安装不上无法测试。

这个现象大多发生在Android Studio 3.X的IDE上,而使用低版本的基本没有遇到过,这主要是由于Android Studio 3.X版本新特性导致的。

在Android Studio1.x, 2.x 甚至更早的eclipse时代,testOnly需要在AndroidManifest.xml中配置才会生效的一个属性,如果不配置默认为false。

在Android Studio 3.X 中,Google悄悄的增加了一个特性,就是在debug版本中,直接运行安装会自动配置testOnly=true的属性。

developer android 中至少有两处提到了这个特性,如果不经常查阅文档,不太容易注意到

虽然文档中提到debuggable apk会使用这个特性,但是也有同事遇到切换到release版本依然有这个问题;

所以目前至少可以通过 Build APK 之后再安装的方式来避免testOnly的问题。

此外,在gist中有人介绍了另一种解决方案,在gradle.properties中配置一条属性,这个配置理论上可以完全规避studio 3的这个特性,暂时还没有进行验证,可以自己尝试一下