【问题标题】:run fails with INSTALL_FAILED_TEST_ONLY运行失败并出现 INSTALL_FAILED_TEST_ONLY
【发布时间】:2018-07-04 12:58:32
【问题描述】:

我是使用葫芦测试 Android 应用程序的新手。

我实施了一些测试来验证使用 Android Studio 3.0.1 和 Gradle 版本 2.3.3 实施的 apk,并且效果很好。 当我尝试执行测试以验证使用 Gradle 版本 3.0.1 和 Kotlin(相同的 AS)创建的新应用程序时,会出现问题。执行命令:

bundle exec calabash-android run app-release.apk

我明白了:

adb: failed to install /Users/sonia/Documents/calabash-test-android/app-release.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
  Scenario: As a valid user I can log into my app #features/my_first.feature:3
  undefined method `chomp' for nil:NilClass (NoMethodError)
  ./features/support/app_installation_hooks.rb:18:in `Before'
  Will not start test server because of previous failures. (RuntimeError)
  ./features/support/app_life_cycle_hooks.rb:5:in `Before'
    When I press "Login"                          # calabash-android-0.9.2/lib/calabash-android/steps/press_button_steps.rb:17
    Then I see "Welcome to coolest app ever"      # calabash-android-0.9.2/lib/calabash-android/steps/assert_steps.rb:5

Failing Scenarios:
cucumber features/my_first.feature:3 # Scenario: As a valid user I can log into my app

1 scenario (1 failed)
2 steps (2 skipped)
0m4.553s

新应用中AS中定义的所有其他设置与旧应用相同。

有人知道Gradle版本是否有问题吗?

【问题讨论】:

    标签: android calabash-android


    【解决方案1】:

    Official docs 这么说

    注意:运行按钮构建一个带有 testOnly="true" 的 APK,这意味着该 APK 只能通过 adb(Android Studio 使用)安装。如果您想要一个人们无需 adb 即可安装的可调试 APK,请选择您的调试变体,然后点击 Build > Build APK(s)。

    即使我强制在 AndroidManifest.xml 中的应用程序标记中添加以下行

    android:testOnly="false"
    

    Android Studio 运行按钮会覆盖我的设置。

    我找到了一种阻止 Android Studio 将 testOnly 属性注入应用程序标签的工作方法。

    添加以下行:

    android.injected.testOnly=false
    

    到项目中的 gradle.properties gradle 配置文件。

    【讨论】:

    • 救命恩人!我被这个错误困住了 2 天。谢谢!
    • 非常感谢@Tshunglee。我忙了几个小时来解决这个问题。
    【解决方案2】:

    我也面临同样的问题,并在清单android:testOnly="false" 中尝试了android.injected.testOnly=false。但它不起作用。

    对我有用的简单解决方案是 - 单击构建选项并选择构建 APK。单击在右下角出现的对话框上定位 apk。它将找到您未签名的调试 APK。

    【讨论】:

      【解决方案3】:

      刚刚做了:

      1. 构建 -> 构建捆绑包/APK -> 构建 APK
      2. 导航到目录build/outputs/apk/release
      3. adb install -r your_app.apk

      即使android:testOnly="false" 在您的 AndroidManifest.xml 文件中,似乎点击运行仍会添加标志。

      【讨论】:

        【解决方案4】:

        尝试在您的 AndroidManifest.xml 中将 android:testOnly="true" 更改为 android:testOnly="false"。您也可以直接删除它,应该可以双向使用。

        【讨论】:

          【解决方案5】:

          如果使用 SDK 的预览版,它会强制 testOnly 为 TRUE。只能通过adb -t 跳过此错误。这会阻止最终用户发布带有预览版 SDK 的应用程序。

          【讨论】:

            猜你喜欢
            • 2014-10-06
            • 1970-01-01
            • 2014-11-04
            • 2011-06-21
            • 1970-01-01
            • 2021-01-05
            • 2022-01-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多