簡體   English   中英

Google Play 錯誤:無法上傳僅供測試的 APK

[英]Google Play error: cannot upload a test-only APK

嘗試將第一個 apk 上傳到 GooglePlay 控制台中最近創建的項目時,我收到此錯誤:

您不能上傳僅供測試的 APK

按照今天,在 Google 上搜索該字符串的結果為 0。

我還提交了 Play 管理中心的票證。 如果有任何答案,將在此處更新。

2017 年 11 月 29 日更新

正如@paul-lammertsma 所建議的,有一個解決方法。 仍然很高興知道為什么我們需要采用 gradle 方式,而我們不能通過 IDE 來實現。

通過 Android Studio 3.0 及更高版本構建您的應用程序會將android:testOnly="true"到您的應用程序清單,將 APK 標記為 PackageManager 的FLAG_TEST_ONLY 更多關於 CommonsBlog 的信息在這里。

嘗試在 Android Studio 之外安裝此類 APK 將失敗:

無法安裝 app-debug.apk: 失敗 [INSTALL_FAILED_TEST_ONLY: installPackageLI]

嘗試將其上傳到 Google Play 也會失敗,並顯示:

您不能上傳僅供測試的 APK

對此有四種解決方案:

從 Android Studio 構建

只需從 Android Studio 的“構建”菜單中選擇“構建 APK”。

從 Android Studio 手動簽名

只需從 Android Studio 的“Build”菜單中選擇“Generate Signed APK...”。 提供密鑰庫並在顯示的對話框中輸入簽名詳細信息。

通過 Gradle 構建

您當然可以簡單地從終端執行 Gradle 以實現某些自動化,例如,如果您的部署周期通過 CI 運行(我強烈推薦!):

./gradlew assembleRelease

(或者,您可能更喜歡從 Android Studio 中的 Gradle 窗格運行此 Gradle 任務。)

在 Android Studio 中禁用此功能

如果您不喜歡這種行為,您可以選擇將此標志添加到您的gradle.properties 請注意,測試標志是為了您自己的保護,因此您不會意外發布僅用於測試的 APK!

# Disble testOnly mode for Android Studio
android.injected.testOnly=false

看起來我發現了一些非常相關的東西: ADB Install Fails With INSTALL_FAILED_TEST_ONLY

我正在使用 2.4.0-alpha6 的 gradle 插件,這似乎還遠未准備好用於生產。

所以解決辦法是使用最新的stable gradle插件:

classpath 'com.android.tools.build:gradle:2.3.1'

單擊 Build 然后按 BuildAPK(s) 然后上傳它就可以了。 android studio 3.0 上的 Instant run APK 僅在連接到 adb 的設備上運行。

我發現這個博客解決了“僅測試”錯誤的原因

https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html

基本上,有兩點需要注意:

您不能通過常規方式安裝帶有 android:testOnly="true" 的應用程序,例如從 Android 文件管理器或從網站下載

Android Studio 3.0 在從 IDE 運行的 APK 上設置 android:testOnly="true"

android studio 3.0 現在在您使用綠色運行按鈕(制作項目 CTRL+F9)編譯發布版本時設置此“testOnly”標志。

我發現的解決方案是不調用“make project”,而是調用

  • 構建 > 構建 APK 或
  • 構建 > 生成簽名的 APK...

我正在使用Android Studio 3.1 Canary 5

我嘗試過的(但沒有奏效):

  • 我嘗試了上述所有答案,但不幸的是我沒有得到解決方案。
  • 我刪除了kotlin依賴項並簽名但不起作用。
  • 我嘗試使用像./gradlew assembleRelease這樣的命令行
  • 我嘗試使用“Build APK”和“Generate Signed APK”構建apk

在所有可能性之后,我通過以下方式獲得了解決方案: - 編譯 SDK 版本從Android P更改為Android Oreo 27 - 將AppCompat版本更改為27.0.1

它現在成功地工作了。

謝謝你。

它對我有用。 嘗試運行它並再次構建。 ./gradlew assembleRelease

也許您正在上傳錯誤的 apk 文件,該文件之前生成的不是已簽名的 apk。 所以通過定位生成的簽名apk文件的確切路徑來選擇apk文件。

暫無
暫無

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

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