我在我的设备上安装apk时有问题。

adb install <.apk>

使用上述命令将返回以下结果:

5413 KB/s (99747 bytes in 0.017s)
        pkg: /data/local/tmp/AppClient.TestOnly.App3.apk
Failure [INSTALL_FAILED_TEST_ONLY]

你知道是什么导致了这个问题吗?

它肯定能识别设备。会不会是apk出了问题?


当前回答

我的发现如下。如果我使用Android Studio UI编译,并生成APK,我不能只是

adb install <xxx.apk>

它将生成失败[INSTALL_FAILED_TEST_ONLY]

我需要使用gradle即./gradlew app: assemblerrelease编译它。然后只有生成的apk,然后才能安装。

这是因为Android Studio UI Compile只为特定设备生成测试apk,而./gradlew app: assemblerrelease命令是实际生成的apk,将安装在所有设备上(并上传到playstore)

其他回答

如果你正在寻找一个不那么永久的解决方案,那么添加android.inject。testOnly=false到你的gradle。如果你不介意使用命令行,那么在安装之前执行以下两个命令即可:

rm -v **/build/**/AndroidManifest.xml
gradle build

Windows用户:从所有构建目录中删除所有AndroidManifest.xml。但不是从src目录,所以DEL /S不是最好的主意。

对我来说,它已经工作了,执行gradle任务“清洁”(在:app下,在gradle窗格,通常位于右侧),并再次运行项目。

如文档中所述:

Android Studio在单击Run时自动添加此属性

所以,为了能够安装你的apk与adb安装<路径到apk文件>你需要组装从终端:./gradlew assembleDebug和adb安装。或者只运行./gradlew installDebug在设备上同时构建和安装。

对我来说有效的方法是从右边菜单的Gradle工具栏刷新所有的Gradle项目。

PFB来自Android Studio的截图。

从右边的菜单中选择Gradle工具栏。 选择刷新图标

这为我解决了问题。

将这一行添加到你的gradle.properties中

android.injected.testOnly=false