在Android Studio 3.0中失败[INSTALL_FAILED_TEST_ONLY:installPackageLI]

AAD*_*ing 19 android apk android-studio

根据CommonsWare上的此博客文章AndroidManifest.xml文件可以具有android:testOnly属性。

在我中AndroidManifest.xml它设置为“ false”

android:testOnly="false"
Run Code Online (Sandbox Code Playgroud)

我正在使用“ Build APK(s)”菜单选项生成apk文件,如下图所示,

在此处输入图片说明

当我尝试从命令行adb install -r myapp.apk安装应用程序时,我仍然收到错误消息,

失败[INSTALL_FAILED_TEST_ONLY:installPackageLI]

Android Studio版本如下, 在此处输入图片说明

我还应该做些什么才能使我的应用运行?

Lan*_*ang 58

您也可以使用以下命令:

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

这个对我有用:

PS C:\Users\languoguang> adb -P 12345 install -r D:\GreeneTrans\HelloWorld-signed.apk
adb: failed to install D:\GreeneTrans\HelloWorld-signed.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
PS C:\Users\languoguang> adb -P 12345 install -t D:\GreeneTrans\HelloWorld-signed.apk
Success
PS C:\Users\languoguang> adb -P 12345 install -r -t D:\GreeneTrans\HelloWorld-signed.apk
Success
PS C:\Users\languoguang>
Run Code Online (Sandbox Code Playgroud)


Fra*_*con 28

只需使用以下命令:

adb install -t app/build/outputs/apk/debug/app-debug.apk
Run Code Online (Sandbox Code Playgroud)

您不需要使用 -r,-r 表示重新安装现有应用程序,保留其数据。

安装应用程序您可以使用 adb 使用 install 命令在模拟器或连接的设备上安装 APK:

adb 安装 path_to_apk

安装测试 APK 时,您必须在 install 命令中使用 -t 选项。有关详细信息,请参阅 -t。

https://developer.android.com/studio/command-line/adb#move

-t:允许安装测试 APK。当您仅运行或调试您的应用程序或使用 Android Studio Build > Build APK 命令时,Gradle 会生成一个测试 APK。如果 APK 是使用开发者预览版 SDK 构建的(如果 targetSdkVersion 是字母而不是数字),则如果您要安装测试 APK,则必须在安装命令中包含 -t 选项。

https://developer.android.com/studio/command-line/adb#-t-option

或者您可以使用与在 Android Studio 中单击运行相同的命令

adb push {project dir}/app/build/outputs/apk/debug/app-debug.apk /data/local/tmp/{appId}

adb shell pm install -t /data/local/tmp/{appId}
Run Code Online (Sandbox Code Playgroud)

appId 在 app/build.gradle 中定义。

defaultConfig {
    applicationId appId
Run Code Online (Sandbox Code Playgroud)

现在应用程序从本地安装在设备上启动第一个活动。

adb shell am start -n "{package name}/{package name}.splash.SplashActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Run Code Online (Sandbox Code Playgroud)

2019-11-13 13:43 Gradle 同步开始

13:44 项目设置开始

13:44 执行任务:[:app:generateDebugSources, :vplus_explore:generateDebugSources, :vplus_uibase:generateDebugSources, :vplus_widget:generateDebugSources, :vplus_runtime:generateDebugSources, :vplus_cards:generateplus_DebugSources, :vplus_explore:generateDebugSources,:vplus_uibase:generateDebugSources, generateDebugSources, :vplus_payment:generateDebugSources, :vplus_common:generateDebugSources, :vplus_account:generateDebugSources, :vplus_commonres:generateDebugSources, :vplus_bootstrap:generateDebugSources, :vplus_logger:generateDebugSources]

13:44 Gradle 同步在 27 秒 126 毫秒内完成

13:44 Gradle 构建在 4 秒 666 毫秒内完成

13:45 * 守护进程没有运行;现在从 tcp:5037 开始

13:45 * 守护进程成功启动

13:45 执行任务:[:app:assembleDebug]

13:46 Gradle 构建在 33 秒 640 毫秒内完成


Mas*_*ari 16

解决方案1

单击包含您的配置的下拉菜单并选择 Edit Configurations…

编辑配置...

选择选项卡常规并添加-tInstall Flags字段。单击确定。

安装标志

现在再次启动应用程序,它应该可以工作了。

解决方案2

这意味着,共享应用程序有一些测试包,因此除非已删除这些包并重新编译源代码,否则您将无法安装此 apk。但是 adb 命令提供了一个标志“-t”,您可以使用它来安装带有测试包的应用程序。

$ adb install -r -t YourAndroidApp.apk
2566 KB/s (7266004 bytes in 2.764s)
Success
Run Code Online (Sandbox Code Playgroud)

解决方案3

如果您从存储在不同目录中的其他计算机移动项目,则可能会发生此错误。解决问题:Clean the project并重新构建它。

解决方案4

转到“ Settings” ->“ Build, execution, deployment”并禁用“instant run热插拔代码...”

解决方案 5 将此行添加到gradle.properties

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


Man*_*nas 7

如果您想手动安装 APK 或将其交给某人使用以下 adb 命令进行手动安装,那么您应该只从菜单栏 -> 构建 -> 构建捆绑包/APK 构建 APK。

 adb install -r xyz.apk
Run Code Online (Sandbox Code Playgroud)

请勿单击播放按钮,因为它构建的 APK 仅用于测试目的。单击播放按钮会覆盖默认位置中的 APK,然后只需使用以下命令即可手动安装该 APK。

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


小智 6

如果您确实希望能够从Android Studio中生成的APK中删除测试标记,则可以尝试将以下内容添加到gradle.properties文件中:

android.injected.testOnly = false

  • 我搜索了很多,并做了@Commnsware 博客中的任何内容,但没有任何帮助。当我在 gradle.properties 中使用上面的标志时,它工作得很好!谢谢 (2认同)