Ошибка Google Play: не удается загрузить тестовый APK
При попытке загрузить первый apk в недавно созданный проект в консоли GooglePlay, я получаю эту ошибку:
Вы не можете загрузить APK с тестовым протоколом
Поиск Google дает мне 0 результатов для этой точной строки, как сегодня.
Я также отправил билет на Play Console. Будет обновлен здесь, если у вас есть ответ.
ОБНОВЛЕНИЕ 29 ноября 2017 года
Как предложил @paul-lammertsma, есть обходной путь. Тем не менее было бы хорошо знать, почему нам нужно идти gradle, и мы не можем сделать это через IDE.
Ответы
Ответ 1
Создание приложения через Android Studio 3.0 и более поздние android:testOnly="true"
добавит android:testOnly="true"
в манифест приложения, помечая APK как FLAG_TEST_ONLY
для FLAG_TEST_ONLY
. Больше информации о CommonsBlog здесь.
Попытка установить такой APK вне Android Studio не удастся:
Не удалось установить app-debug.apk: ошибка [INSTALL_FAILED_TEST_ONLY: installPackageLI]
Попытка загрузить его в Google Play также не удастся:
Вы не можете загрузить только тестовый APK
Есть четыре решения этого:
Сборка из Android Studio
Просто выберите "Build APK (s)" в меню "Build" в Android Studio.
Войдите из Android Studio вручную
Просто выберите "Создать подписанный APK..." в меню "Сборка" в Android Studio. Укажите хранилище ключей и введите данные подписи в появившемся диалоговом окне.
Построить через Gradle
Конечно, вы можете просто запустить Gradle из терминала. Кроме того, если ваш цикл развертывания проходит через CI (и он должен!), Это действительно путь!
./gradlew assembleRelease
(В качестве альтернативы вы можете предпочесть запускать эту задачу Gradle из панели Gradle из Android Studio.)
Отключить эту функцию в Android Studio
Если вам не нравится это поведение, вы можете добавить этот флаг в свои gradle.properties
. Помните, что тестовый флаг предназначен для вашей собственной защиты, поэтому вы не можете случайно опубликовать APK только для тестирования!
# Disble the bullshit testOnly mode for Android Studio
android.injected.testOnly=false
Ответ 2
Похоже, я нашел нечто очень близкое:
Ошибка ADB с установкой INSTALL_FAILED_TEST_ONLY
Я использую плагин 2.4.0-alpha6 из gradle и, похоже, далеко не готов к использованию для производства.
Таким образом, решение заключается в использовании последнего стабильного плагина gradle:
classpath 'com.android.tools.build:gradle:2.3.1'
Ответ 3
Нажмите "Создать", а затем нажмите "BuildAPK (ы)", а затем загрузите его, и он будет работать. Мгновенный запуск APK на студии Android 3.0 выполняется только на устройстве, прикрепленном к adb.
Ответ 4
Я нашел этот блог, который устраняет причину ошибки "только для тестирования"
https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
в основном, есть две вещи, на которые следует обратить внимание:
Вы не можете установить приложение с android: testOnly = "true" обычными способами, например, из файлового менеджера Android или из загрузки с веб-сайта.
Android Studio 3.0 устанавливает Android: testOnly = "true" на APK, которые запускаются из IDE
android studio 3.0 теперь устанавливает этот флаг "testOnly", когда вы компилируете версию выпуска с помощью зеленой кнопки "Выполнить" (создайте проект CTRL + F9).
Решение, которое я нашел, состоит в том, чтобы не называть "сделать проект", а вызвать
- build> build APK или
- build> Создать подписанный APK...
Ответ 5
Я использую Android Studio 3.1 Canary 5
Что я пробовал (но не сработало):
- Я попробовал все ответы, как указано выше, но, к сожалению, я не нашел решения.
- Я удалил зависимость kotlin и подписал, но не работает.
- Я пытался использовать командную строку, как
./gradlew assembleRelease
- Я пытался собрать apk, используя "Build APK" и "Generate Signed APK"
После всех возможностей я получил решение следующим образом: - Версия Compile SDK изменена с Android P на Android Oreo 27 - Изменена версия AppCompat на 27.0.1
и его успешно работает сейчас.
Спасибо.
Ответ 6
Перейдите на терминал и запустите эту команду из корня вашего проекта:
gradle assembleRelease
Ответ 7
Это сработало для меня. Попробуйте запустить это и построить снова. ./gradlew сборка
Возможно, вы загружаете неправильный apk файл, созданный ранее, а не подписанный apk. Поэтому выберите файл apk, указав точный путь к сгенерированному файлу apk со знаком.