![](/img/trans.png)
[英]Android run fails with message Failed to finalize session: 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。
剛剛做了:
build/outputs/apk/release
即使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.