簡體   English   中英

運行失敗並出現 INSTALL_FAILED_TEST_ONLY

[英]run fails with INSTALL_FAILED_TEST_ONLY

我是使用葫蘆測試 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版本有問題嗎?

官方文檔是這么說的

注意:運行按鈕構建一個帶有 testOnly="true" 的 APK,這意味着 APK 只能通過 adb(Android Studio 使用的)安裝。 如果您想要一個無需 adb 即可安裝的可調試 APK,請選擇您的調試變體並單擊 Build > Build APK(s)。

即使我強制將下面的行添加到 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 但它不起作用。

對我有用的簡單解決方案是 - 單擊 Build 選項並選擇 Build APK(s)。 單擊出現在右下角的對話框中的定位 apk。 它將找到您未簽名的調試 APK。

剛剛做了:

  1. Build -> Build Bundle(s)/APKs -> Build APKs
  2. 導航到目錄build/outputs/apk/release
  3. adb install -r your_app.apk

即使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文件中。 否則它將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM