You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

adb install遇INSTALL_FAILED_TEST_ONLY错误,合并Manifest的testOnly属性来源?

合并后Manifest出现android:testOnly="true"的原因分析

以下是几种常见的触发场景,即使你没手动在原始Manifest中添加该属性,也会导致合并后的文件出现这个标记:

  • Android Studio运行部署自动添加
    当你使用Android Studio的「Run」按钮直接部署应用时,Android Gradle插件会自动给打包后的APK加上android:testOnly="true"属性。这个标记用于区分测试部署的包,这类APK只能通过adb install -t命令或者IDE直接安装,无法用普通的adb install命令安装。

  • 第三方依赖库引入
    项目中依赖的第三方库(比如测试框架、某些SDK组件)的Manifest文件里可能自带android:testOnly="true"属性。在Manifest合并阶段,这个属性会被合并到最终的Manifest中。你可以查看Android Studio生成的Manifest Merging Report(路径一般在build/outputs/logs/manifest-merger-xxx-report.txt),定位具体是哪个依赖引入了这个属性。

  • Gradle构建配置触发
    如果你的build.gradle文件中配置了和测试相关的构建变体或参数,比如指定了testBuildType,Gradle插件会自动为对应的构建产物添加testOnly标记。比如debug构建变体在某些测试配置下,会被自动标记为test-only。

  • 使用测试类打包命令
    若你执行了测试相关的打包命令,比如gradlew assembleAndroidTest,生成的APK本身就是用于测试的,对应的Manifest会被自动加上android:testOnly="true"属性。

内容的提问来源于stack exchange,提问作者Keselme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:55:32