运行失败,INSTALL_FAILED_TEST_ONLY



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

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

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 版本是否有问题吗?

官方文档是这样说的

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

甚至我强迫在AndroidManifest中的应用程序标签中添加以下行.xml

android:testOnly="false"

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

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

添加以下行:

android.injected.testOnly=false

到 gradle.properties gradle 配置文件。

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

对我有用的简单解决方案是- 单击构建选项,然后选择构建APK。 单击右下角显示的对话框中查找Apk。它将找到您的未签名调试APK。

刚刚做了:

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

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

编辑运行配置,将部署选项从"默认 APK"更改为"来自应用捆绑包的 APK"。

即使没有设置 android.injected.testOnly=false 和 android:testOnly="false",它仍然有效。

尝试在AndroidManifest.xml中将android:testOnly="true"更改为android:testOnly="false"。您也可以将其删除,应该双向工作。

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

记得添加以下行:

android.injected.testOnly=false

在位于的gradle.properties文件中

[ROOT_PROJECT]/app/gradle.properties(或您的主应用程序 Gradle 模块(而不是[ROOT_PROJECT]/gradle.properties文件。否则它将不起作用。

相关内容

  • 没有找到相关文章