Android ADB安装失败,仅安装测试失败
我在设备上安装apk时遇到问题Android ADB安装失败,仅安装测试失败,android,installation,apk,adb,Android,Installation,Apk,Adb,我在设备上安装apk时遇到问题 adb install <.apk> 你知道是什么导致了这个问题吗 它肯定能认出这个设备。这可能是apk的问题吗?看起来您需要修改您的AndroidManifest.xml 将android:testOnly=“true”更改为android:testOnly=“false”或删除此属性 如果您想将属性android:testOnly保持为true,您可以使用带有-t选项的pm install命令,但是您可能需要先将apk推送到设备上 $ adb p
adb install <.apk>
你知道是什么导致了这个问题吗
它肯定能认出这个设备。这可能是apk的问题吗?看起来您需要修改您的
AndroidManifest.xml
将android:testOnly=“true”更改为
android:testOnly=“false”
或删除此属性
如果您想将属性android:testOnly
保持为true
,您可以使用带有-t
选项的pm install
命令,但是您可能需要先将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
虽然我相信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
在我的例子中,这个错误出现在不稳定的gradle版本中。只需使用稳定版本的gradle(不是alpha,甚至不是beta)。它对我来说是固定的,我不知道它是否对任何人有用,但我得到了这个错误消息,当我不小心尝试在稳定的Android Studio版本中用test gradle插件('gradle:2.4.0-alpha5')版本构建并安装我的项目时(2.3
,不在我以前下载并安装的2.4预览版5
版本中)
当我意识到我的错误时,我启动了预览Android Studio版本,它构建并安装了我的项目,没有任何问题。我同意Elisey的观点。在2.4预览中打开我的项目,然后在Android Studio 2.3中打开同一项目后,我遇到了同样的错误
通过将build.gradle中的此行从
classpath 'com.android.tools.build:gradle:2.4.0-alpha5'
到
在不恢复到较旧的gradle版本的情况下,最容易解决此问题的方法是在运行配置中添加“-t”选项(对于pm安装)
testOnly='false'没有任何影响。该错误是由gradle插件的alpha版本导致的,该版本使debug APK“仅用于测试目的”。-t选项允许安装此类APK。在运行配置中设置它会使它像往常一样自动安装APK。添加-t
安装标志,如下面的屏幕截图所示:
我尝试了使用多个apk的外部项目
来自Studio的命令,看起来像
adb install-multiple -r ....
溶液-
- 选择控制台
- 带
-t
在我的例子中,是通过上传一个APK,虽然它是用生产证书签署的,并且是一个版本变体,但它是由Android studio的run play按钮生成的。
从Gradle或Build APK菜单选项生成APK后,问题已解决。如果要测试APK,只需添加-t
命令行选项
命令示例:
adb install -t .\app-debug.apk
我在Android Studio 3.0.0 Beta 7中遇到了类似的问题,无法再发布到play store
如下文所述:
注意:Run按钮构建了一个带有testOnly=“true”的APK,这意味着
APK只能通过adb安装(Android Studio使用adb)。如果
如果您想要一个人们可以在没有adb的情况下安装的可调试APK,请选择
调试变量,然后单击构建>构建APK
发布版本也一样,使用androidstudio3
你需要进入build>buildapk
有一个不可测试的发行版apk,您可以提交到商店。这对我有效adb安装-t myapk.apk我看到了接受的答案,但您不必实际推送apk,然后在adb shell上运行命令直接adb安装-t标志实际有效
adb安装-t“您计算机中apk的路径”
附加屏幕截图以供参考
Android studio 3.0只生成测试APK
我通过将“android:testOnly”属性添加到android清单的标记中解决了这个问题
<application
.....
android:testOnly="false"
android:theme="@style/AppTheme">
我的发现如下。如果我使用Android Studio UI编译,并生成APK,我不能
adb install <xxx.apk>
adb安装
它将生成失败[安装失败\u仅测试失败]
我需要使用gradle编译它,即/gradlew app:assembleerelease
。然后只有生成的apk才能安装
这是因为Android Studio UI Compile仅为特定设备生成测试apk,而/gradlew app:assembleerelease
命令是所有设备上安装的实际apk生成(并上传到playstore),如中所述:
Android Studio会在您单击“运行”时自动添加此属性
因此,为了能够使用adb安装来安装apk,您需要从terminal:/gradlew AssembledBug
组装构建并使用adb安装。或者只需运行/gradlew installDebug
来同时在设备上构建和安装。对我来说,它已经起作用了执行gradle任务“清理”(在:app下,渐变窗格,通常位于右侧)并再次运行项目。首先删除不稳定的版本:
adb卸载
有问题的软件包名称
;然后重新安装apk。从Android Studio构建您的发行版.apk,如下所示
生成-->生成Apk(用于未签名的生成)
生成-->生成签名APK(用于签名生成)
这些选项使用android:testOnly=“false”选项构建APK,该选项允许您通过commond将APK快速安装到设备中
adb安装yourbuild.apk
<application
.....
android:testOnly="false"
android:theme="@style/AppTheme">
adb install <xxx.apk>
android.injected.testOnly=false
android.injected.testOnly=false
android.injected.testOnly=false