Подписанное приложение вызывает INSTALL_PARSE_FAILED_NO_CERTIFICATES - PullRequest
0 голосов
/ 28 октября 2019

Я преобразовал этот проект из Eclipse в Android Studio.

После сборки приложения и его тестирования на нескольких эмуляторах и нескольких физических устройствах мне нужно было подписать его для загрузки в магазин. Я нашел свое старое хранилище ключей и подписал приложение, используя

Build => Generate Signed Bundle / APK => APK => Далее

Добавлен путь к хранилищу ключей, пароль хранилища ключей, ключпсевдоним и использовал тот же пароль для пароля ключа

=> Далее

Варианты сборки: отладка (также пробовал выпуск, а также отладка и выпуск) Версии подписи: V1 (Jar Signature) (V2Полная подпись APK не работала, выбор обоих тоже не работал)

=> Готово

10:48 PM    Generate Signed APK
            APK(s) generated successfully for module 'app' with 1 build variant:
            Build variant 'debug': locate or analyze the APK.

Если я открою получившийся app-debug.apk в emacs (он обрабатывает егов виде zip-файла), я вижу meta-inf/cert.rsa, и его содержимое отображает детали из моего хранилища ключей. Итак, я заключаю, что приложение подписано. Использование Android Studio для открытия app-debug.apk также поддерживает это.

Когда я пытаюсь запустить приложение на эмуляторе, я получаю

Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_NO_CERTIFICATES
APK signature verification failed.

Есть много вопросов, касающихся INSTALL_PARSE_FAILED_NO_CERTIFICATES. Я прочитал все, что казалось применимым (особенно те, что были в 2019 году), и попытался

  • Очистить кеш, перезапустить Android Studio и перестроить.
  • Очистить проект, Сделать проект
  • Чистый проект, перестройка проекта
  • Проверка версии Gradle - Android Gradle 3.5.1
  • Проверка версии Andriod Studio - Android Studio 3.5.1
  • Проверка платформы SDK: Andriod 10 (Q) API Level 29 Revision 3 Установлено
  • Проверка инструментов Andriod SDK: 26.1.1
  • Проверка build.gradle compileSdkVersion: compileSdkVersion 28
  • Проверка версии Java:java версия "1.8.0_45"
  • См. Обновление 2

На этом этапе у меня (почти) закончились идеи о том, на что обратить внимание;любые предложения или решения будут приветствоваться.

Проект также включает JAR, содержащий несколько не-android служебных классов, которые последний раз компилировались до установки Android Studio.

Обновление 1 : Util JAR содержит классы Android, такие как Dialog и Log, а также классы, не относящиеся к Android.

Обновление 2 : Интересно, противоречивоПриведенный выше список номеров версий SDK может быть связан, поэтому я обновил его следующим образом:

  • compileSdkVersion 29
  • buildToolsVersion "29.0.2"
  • minSdkVersion 29
  • targetSdkVersion 29

Без изменений в результате.

Обновление 3 : я работал на AVD, созданном для Sdk 23. После создания AVD для Sdk29 приложение запускается на нем. На данном этапе это обходной путь, так как мне нужно нацелиться на более ранний Sdk. Хотя приложение «запускается», оно вскоре вылетает, очевидно, потому что оно использует устаревшие функции. Вот вам и хваленая обратная совместимость.

Приближаемся к написанию ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...