【问题标题】:getting Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI] in Android studio 3.0在 Android Studio 3.0 中出现故障 [INSTALL_FAILED_TEST_ONLY: installPackageLI]
【发布时间】:2018-06-29 09:29:20
【问题描述】:

根据来自 CommonsWare 的 blogpost,AndroidManifest.xml 文件可以具有 android:testOnly 属性。

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

android:testOnly="false"

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

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

失败 [INSTALL_FAILED_TEST_ONLY: installPackageLI]

Android studio 版本如下,

我还应该怎么做才能让我的应用运行?

【问题讨论】:

    标签: android android-studio apk


    【解决方案1】:

    你也可以这样使用命令:

    adb install -r -t myapp.apk
    

    它对我有用:

    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>
    

    【讨论】:

      【解决方案2】:

      只需使用以下命令:

      adb install -t app/build/outputs/apk/debug/app-debug.apk
      

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

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

      adb install path_to_apk

      当您安装一个 测试APK。有关详细信息,请参阅 -t。

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

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

      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}
      

      appId 在 app/build.gradle 中定义。

      defaultConfig {
          applicationId appId
      

      现在该应用已从设备本地安装 启动第一个活动。

      adb shell am start -n "{package name}/{package name}.splash.SplashActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
      

      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:generateDebugSources, :vplus_launcher:generateDebugSources, :vplus_settings:generateDebugSources, :vplus_transactions: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 毫秒内完成

      【讨论】:

        【解决方案3】:

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

        android.injected.testOnly = false

        【讨论】:

        • 我搜索了很多并做了@Commnsware 博客中的任何内容,但没有任何帮助。当我在 gradle.properties 中使用上述标志时,它工作得很好!谢谢
        • 这是否意味着调试 apk 是默认使用此标志 (testOnly = true) 构建的?
        • @RobD 我是否可以在 Play-store 上发布此构建,密钥设置为 android.injected.testOnly = false 或者我应该在上传播放时将其恢复为“true”-商店?
        【解决方案4】:

        解决方案 1

        单击带有您的配置的下拉菜单并选择Edit Configurations…

        选择“常规”选项卡并将-t 添加到Install Flags 字段。点击确定。

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

        解决方案 2

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

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

        解决方案 3

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

        解决方案 4

        转到“Settings”->“Build, execution, deployment”并禁用“instant run to hot swap code…”

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

        android.injected.testOnly = false
        

        【讨论】:

        • 干净的构建对我来说很好尝试一次..
        【解决方案5】:

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

         adb install -r xyz.apk
        

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

        adb install -r -t xyz.apk
        

        【讨论】:

        • 构建调试apk也可能导致这个错误。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        相关资源
        最近更新 更多