ADB安装失败,INSTALL_FAILED_TEST_ONLY

evv*_*vve 173 android install adb apk

我在向我的设备安装apk时遇到问题.

adb install <.apk>
Run Code Online (Sandbox Code Playgroud)

使用以上命令返回以下内容:

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

有什么可能导致这个问题的想法吗?

它绝对能识别这个设备.这可能是apk的问题吗?

Sau*_*ram 229

看起来你需要修改你的AndroidManifest.xml
更改android:testOnly="true"android:testOnly="false"或删除这个属性.

如果你想保留属性android:testOnly,true你可以使用pm install-t选项的命令,你可能需要首先push使用apk来设备.

$ adb push bin/hello.apk /tmp/
5210 KB/s (825660 bytes in 0.154s)

$ adb shell pm install /tmp/hello.apk 
    pkg: /tmp/hello.apk
Failure [INSTALL_FAILED_TEST_ONLY]

$ adb shell pm install -t /tmp/hello.apk 
    pkg: /tmp/hello.apk
Success
Run Code Online (Sandbox Code Playgroud)

我能够重现同样的问题,以上解决了这个问题.

如果你的APK在设备之外(在你的桌面上),那么下面的命令会这样做:

$ adb install -t hello.apk
Run Code Online (Sandbox Code Playgroud)

  • 你不需要adb push和pm install,你可以在adb install命令之后指定-t开关:adb install -t -r package.apk (53认同)

Gab*_*rin 90

我有一个类似的问题,Android Studio 3.0.0 Beta 7不能再发布到游戏商店.

如上所述:https://developer.android.com/studio/run/index.html

注意:"运行"按钮使用testOnly ="true"构建APK,这意味着APK只能通过adb(Android Studio使用)安装.如果您想要一个可以在没有adb的情况下安装的可调试APK,请选择您的调试版本,然后单击Build> Build APK(s).

发布版本也是如此,Android Studio 3你需要去Build > Build APK(s)一个可以提交给商店的不可测试版本的apk.

  • 我怀疑现在(2017年10月/ 11月)这是大多数人来到这里的正确答案.在AS 3之前,"Run"生成的APK甚至可以在AS之外安装,不可以. (5认同)

小智 59

添加-t安装标志,如下面的屏幕截图所示:

答案是在红色框中

  • 请解释`-t`的作用. (7认同)
  • 这和已接受的答案应该合并. (3认同)
  • 在adb帮助中,您将看到使用-t表示安装允许测试包 (3认同)

Eug*_*noy 56

在我的情况下,这个错误是在不稳定的gradle版本.只需使用稳定版本的gradle(不是alpha,甚至不是beta).这对我来说是固定的


小智 32

经过一整天的搜索和浏览,唯一有效的就是加入

android.injected.testOnly=false
Run Code Online (Sandbox Code Playgroud)

gradle.properties文件


Pat*_*ney 28

我同意Elisey的观点.在2.4预览中打开我的项目然后在android studio 2.3中打开相同的项目后,我得到了同样的错误

通过在build.gradle中更改此行来解决此问题

classpath 'com.android.tools.build:gradle:2.4.0-alpha5'
Run Code Online (Sandbox Code Playgroud)

classpath 'com.android.tools.build:gradle:2.3.1'
Run Code Online (Sandbox Code Playgroud)


us_*_*vid 19

以前的帖子都没有解决我的问题。这是我的情况:
我通常通过单击“运行”按钮从 android studio 加载应用程序。当你这样做时,android 会创建一个适合调试但不适合安装的应用程序。如果您尝试使用以下方法安装:

adb install -r yourapk

您将收到一条消息,内容为:

失败 [INSTALL_FAILED_TEST_ONLY]

发生这种情况时,您需要先清理构建,然后选择 Build->Build APK 来重建 apk。见下图:

构建安卓apk

此 APK 已准备好通过 adb install 命令或任何其他方法安装

希望这可以帮助

大卫


Har*_*ian 14

Android studio 3.0只生成测试APK.

我通过在android manifest的标签中添加"android:testOnly"属性解决了这个问题.

 <application
    .....
    android:testOnly="false"
    android:theme="@style/AppTheme">
Run Code Online (Sandbox Code Playgroud)

然后通过Android studio3.0菜单生成APK:Build - > Build APK(s).

更多信息: https ://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


小智 11

将此行添加到'gradle.properties'

android.injected.testOnly=false
Run Code Online (Sandbox Code Playgroud)


luj*_*jop 9

在我的情况下,通过上传APK,虽然它是使用生产证书签名并且是发布版本,但是由Android工作室的运行播放按钮生成.从Gradle或Build APK菜单选项生成APK后问题解决了.


Lou*_*CAD 9

如果要测试apk,只需添加-t命令行选项.

示例命令:

adb install -t .\app-debug.apk
Run Code Online (Sandbox Code Playgroud)


Yog*_*dra 8

Android 3.6.2 或更高版本

构建 >> 构建/捆绑 apk >> 构建 apk

在此输入图像描述

它工作正常。


小智 8

就我而言,使用 Android Studio 4.0,以下解决了该问题;

添加到“gradle.properties”文件;

android.injected.testOnly=false 
Run Code Online (Sandbox Code Playgroud)


Var*_*rma 5

这对我有用:

adb install -t myapk.apk
Run Code Online (Sandbox Code Playgroud)


amI*_*mIT 5

我看到了已接受的答案,但您不必实际推送 apk,然后在 adb shell direct adb install 上使用 -t 标志运行命令实际上有效

adb install -t "你电脑中apk的路径"

附上截图以供参考 在此处输入图片说明