我在向我的设备安装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的问题吗?
答案 0 :(得分:188)
您似乎需要修改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
我能够重现同样的问题,以上解决了这个问题。
如果您的APK位于设备之外(在桌面上),则以下命令会执行此操作:
$ adb install -t hello.apk
答案 1 :(得分:78)
我在Android Studio 3.0.0 Beta 7
遇到类似的问题,无法再发布到游戏商店。
如上所述:https://developer.android.com/studio/run/index.html
注意:“运行”按钮构建一个带有testOnly =“true”的APK,这意味着 APK只能通过adb安装(Android Studio使用)。如果 你想要一个可以在没有adb的情况下安装的可调试APK,请选择 您的调试版本,然后单击构建&gt;建立APK(s)。
同样适用于发布版本,使用Android Studio 3
您需要转到Build > Build APK(s)
以获得可以提交给商店的不可测试版本。
答案 2 :(得分:54)
在我的情况下,这个错误是在不稳定的gradle版本中。只需使用稳定版本的gradle(不是alpha,甚至不是beta)。这对我来说是固定的
答案 3 :(得分:52)
添加-t
安装标记,如下面的屏幕截图所示:
答案 4 :(得分:28)
我同意Elisey的观点。在2.4预览中打开我的项目然后在android studio 2.3中打开相同的项目后,我得到了同样的错误
通过从
更改build.gradle中的此行来解决此问题classpath 'com.android.tools.build:gradle:2.4.0-alpha5'
到
classpath 'com.android.tools.build:gradle:2.3.1'
答案 5 :(得分:27)
整天搜索和浏览后,唯一有效的是添加
android.injected.testOnly=false
到 gradle.properties 文件
答案 6 :(得分:9)
在我的情况下,通过上传APK,虽然它是使用生产证书签名并且是发布变体,但是由Android工作室的运行播放按钮生成。 从Gradle或Build APK菜单选项生成APK后问题解决了。
答案 7 :(得分:9)
将此行添加到'gradle.properties'
android.injected.testOnly=false
答案 8 :(得分:8)
如果要测试apk,只需添加-t
命令行选项。
示例命令:
adb install -t .\app-debug.apk
答案 9 :(得分:5)
上一篇文章都没有解决我的问题。这是我正在发生的事情:
我通常通过单击“运行”按钮从android studio加载应用程序。当您执行此操作时,Android会创建一个适合调试但不适合安装的应用程序。如果您尝试使用以下方式进行安装:
adb install -r yourapk
您将收到一条消息,指出:
失败[INSTALL_FAILED_TEST_ONLY]
在这种情况下,您需要先清理构建,然后选择构建->构建APK,以重建apk。参见下面的图片:
此APK已准备就绪,可以通过adb install命令或任何其他方法进行安装
希望这会有所帮助
大卫
答案 10 :(得分:3)
最容易解决这个问题,而不是恢复到较旧的gradle版本是在运行配置中添加'-t'选项(对于pm安装)。
testOnly ='false'没有任何效果。该错误是由gradle插件的alpha版本引起的,该版本使调试APK'仅用于测试目的'。 -t选项允许安装此类APK。在运行配置中设置它会使它像往常一样自动安装APK。
答案 11 :(得分:3)
就我而言,使用Android Studio 4.0,以下解决了该问题;
添加到“ gradle.properties”文件;
android.injected.testOnly=false
答案 12 :(得分:3)
我看到了接受的答案,但你不必实际推送apk然后在adb shell上运行命令直接使用-t标志进行adb安装实际上有效
adb install -t&#34;在您的计算机中使用apk的路径&#34;
答案 13 :(得分:3)
答案 14 :(得分:2)
我不知道它是否对任何人都有用,但是当我不小心尝试在稳定的Android中使用test gradle插件('gradle:2.4.0-alpha5'
)版本构建和安装我的项目时,我收到了此错误消息Studio版本(2.3
,不在我之前下载和安装的2.4 preview 5
版本中。)
当我意识到自己的错误时,我启动了预览Android Studio版本,它没有任何问题地构建和安装我的项目。
答案 15 :(得分:2)
这适用于我adb install -t myapk.apk
答案 16 :(得分:1)
对我有用的是从右侧菜单的Refresh all Gradle projects
工具栏中执行Gradle
。
PFB来自Android Studio的屏幕截图。
答案 17 :(得分:1)
虽然我确信Saurabh的答案适用于大多数其他人,但我确实想确定为了安装我的apk而必须采取的额外步骤。
我尝试使用以下结果推送到设备:
? adb push AppClient.TestOnly.App3.apk \tmp\
failed to copy 'AppClient.TestOnly.App3.apk' to '\tmp\': Read-only file system
在四处寻找更改文件系统RW权限后,我最终执行了以下命令:
? adb shell
255|shell@android:/ $ su
shell@android:/ # mount -o remount,rw /
mount -o remount,rw /
当我再次尝试推动时,我得到了这个:
? adb push AppClient.TestOnly.App3.apk /tmp
failed to copy 'AppClient.TestOnly.App3.apk' to '/tmp': Permission denied
我能够推送到SD卡:
? adb push AppClient.TestOnly.App3.apk /sdcard/
3178 KB/s (99747 bytes in 0.030s)
此时我能够执行Saurabh的命令:
shell@android:/ # pm install -t /sdcard/AppClient.TestOnly.App3.apk
pm install -t /sdcard/AppClient.TestOnly.App3.apk
pkg: /sdcard/AppClient.TestOnly.App3.apk
Success
答案 18 :(得分:1)
从Android Studio构建您的发行版.apk,如下所示
构建 - &gt;构建Apk(s)(对于未签名的构建) 构建 - &gt;生成签名APK (用于签名版本)
这些选项使用android构建APK:testOnly =&#34; false&#34;允许您通过commond将APK明确地安装到设备中的选项。
adb install yourBuilT.apk
答案 19 :(得分:1)
我的发现如下。如果我使用Android Studio UI编译,并生成APK,我不能只是
adb install <xxx.apk>
它会生成Failure [INSTALL_FAILED_TEST_ONLY]
我需要使用gradle编译它,即./gradlew app:assembleRelease
。然后只生成apk,然后才能安装。
这是因为Android Studio UI Compile只为特定设备生成测试apk,而./gradlew app:assembleRelease
命令是要在所有设备上安装的实际apk版本(并上传到Playstore)
答案 20 :(得分:0)
首先删除不稳定版本:
adb uninstall
problematic-package-name
然后重新安装apk。
答案 21 :(得分:0)
如documentation中所述:
单击“运行”
时,Android Studio会自动添加此属性
因此,为了能够使用adb install <path to apk file>
安装apk,您需要从终端组装构建:./gradlew assembleDebug
并使用adb进行安装。或者只需运行./gradlew installDebug
即可在设备上同时构建和安装。
答案 22 :(得分:0)
我尝试了多个apk的外部项目。
来自Studio的命令,看起来像
+
解决方案 -
adb install-multiple -r ....
答案 23 :(得分:0)
如果您正在寻找一个不太持久的解决方案,然后将 android.injected.testOnly=false
添加到您的 gradle.properties 文件,并且您不介意使用命令行,那么安装前的以下两个命令将做:
rm -v **/build/**/AndroidManifest.xml
gradle build
对于 Windows 用户:从所有 build 目录中删除所有 AndroidManifest.xml。但不是来自 src 目录,所以 DEL /S
不是最好的主意。