Я пытался изменить активность по умолчанию / main / startup (как бы вы это ни называли), отредактировав androidmanifest.xml
файл. Все, что я сделал, это сменил android:name
собственность. однако, это полностью сломало все приложение. когда я пытаюсь установить это не удается и читает.
Ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Когда я пытался вернуть его в прежнее состояние, он все еще давал мне ту же ошибку ... Что я сделал?
android
installation
apk
android-install-apk
mtmurdock
источник
источник
INSTALL_PARSE_FAILED_NO_CERTIFICATES
ошибка,-103
которую вы можете получить / увидеть черезadb log
( src ), например.D/PackageInstaller(21320): Installation error code: -103
Ответы:
Вы редактировали
AndroidManifest.xml
прямо в.apk
файле? Если так, это не сработает.Каждый Android
.apk
должен быть подписан, если он будет установлен на телефоне , даже если вы не устанавливаете через Маркет. Инструменты разработки работают вокруг этого путем подписания с сертификатом разработки, но.apk
он все еще подписан.Одно из применений этого заключается в том, что устройство может определить,
.apk
является ли обновление действующим для установленного приложения, поскольку если это так, сертификаты будут такими же.Поэтому, если вы внесете какие-либо изменения в свое приложение, вам нужно будет перестроить его,
.apk
чтобы оно было подписано должным образом.источник
flutter clean
и снова запускайте / отлаживайте! Эта операция аналогична приведенному выше решению, поскольку она очищает папку сборки и заново собирает файл сборки при запуске / отладке!Я обнаружил, что эта ошибка теперь также может возникать при использовании неправильной конфигурации подписи. Как описано здесь , Android 7.0 представляет новую схему подписи, V2 . Схема V2 подписывает весь APK, а не только JAR, как это делается в схеме V1. Если вы подписываетесь только с V2 и пытаетесь установить на цели до 7.0, вы получите эту ошибку, так как сами JAR-файлы не подписаны, а PackageManager до 7.0 не может обнаружить присутствие подписи APK V2.
Чтобы быть совместимым со всеми целевыми системами, убедитесь, что APK подписан обеими схемами, отметив оба поля версии подписи в диалоговом окне « Создать подписанный APK» в Android Studio, как показано здесь:
Если ожидается только 7.0 целей, нет необходимости включать подпись V1.
источник
Я обнаружил, что это было вызвано моей версией JDK.
У меня была эта проблема с 'муравьем', и это было из-за этого ВНИМАНИЯ, упомянутого в документации:
У меня есть JDK 7. В моем журнале Ant я использовал -v для многословия, и он показал
Я подписал JAR вручную и zipaligned его, но это дало немного другую ошибку:
Я нашел, что ответил здесь.
Как бороться с INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без удаления
Мне нужно было только удалить его, и тогда это сработало!
Теперь мне нужно только изменить build.xml, чтобы использовать эти параметры при подписании!
Хорошо, вот оно: C: \ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml
источник
В большинстве случаев решение этой ошибки действительно простое:
источник
решил (для меня) использование в keytool аргументов
и использовать в jarsigner
решение найдено в
Какие питфалы существуют для подписания Android APK?
источник
Я также столкнулся с той же проблемой. Сначала я сгенерировал сборку с использованием V2 и установил ее на мобильных устройствах под управлением ОС 5.1, и у меня возникла та же проблема. Но сборка работала нормально на планшете под управлением ОС 7.0. Поэтому я сгенерировал сборку с подписью V1 Jar, и она отлично работала на обоих устройствах.
Вывод: если вы поддерживаете устройство ниже Android OS 7.0. Используйте V1 JAR подпись для генерации сборки.
источник
В моем случае я мог собирать и запускать релизные сборки, но получил
INSTALL_PARSE_FAILED_NO_CERTIFICATES
ошибку при попытке сделать отладочную сборку.Решением было удалить мой
debug.keystore
файл и позволить ADT восстановить его. Это очевидно истекло.Лучшим долгосрочным решением является явное создание
debug.keystore
объекта, срок действия которого не истекает через год, вместо того, чтобы позволить ADT его создавать. Вот команда, чтобы сделать это:При появлении запроса введите следующие значения:
источник
Это уродливое, но быстрое решение: используйте JDK 6 вместо 7.
Прочитав ответ Хлои, я удалил свой JDK 7 (он сейчас не нужен) и установил JDK 6. Это исправило его. Лучшим решением было бы использование ant JDK 6 (без удаления 7). Возможно возможное изменение / настройка этого свойства:
java.library.path
в файле local.properties. Он находится в каталоге проекта (root).
Android в любом случае не работает с JDK 7 (только 6 или 5), поэтому хорошее решение - это то, что сценарий ant также использует JDK 6 или 5.
источник
Это потому, что ранее сгенерированная сборка и текущая имеют конфликт в версии подписи между v1 (подпись jar) и v2 (полная подпись APK),
Чтобы установить правильную версию подписи в диалоге Generate Signed APK
источник
Недавно у меня была эта ошибка при обновлении до Android Studio 4.0. Причиной было то, что в проекте была отключена подпись V2 в конфигурации подписи
build.gradle
.Решением было удалить
v2SigningEnabled false
или явно установить егоtrue
, что является значением по умолчанию.источник
В более поздних версиях Android Studio 3.2+, если вы пытаетесь запустить
release
установку, и вы не определили какие-либо конфигурации подписи, будет отображаться сообщение об ошибке, и при установке произойдет сбой. Вам нужно либо запуститьdebug
сборку, либо правильно настроить конфигурацию подписи (V1 или V2).источник
большинство ответов верны. и некоторые другие причины, которые происходят, являются
источник
Это может произойти, если вы попытаетесь включить
.jar
библиотеку, которая содержитAndroidManifest.xml
файл.источник
Также вы можете проверить
Project Structure
->Default Config
->Signing Config
после того, как вы добавите все, что вам нужно
источник
Установка переменной среды
JAVA_HOME
в JDK 5 или 6 (вместо JDK 7) исправила ошибку.источник
Через некоторое время и многочисленные онлайн-темы на эту тему мне удалось исправить свой проект.
Это в основном принимает во внимание последние файлы ( могут быть изображения или макеты ), которые вы вставили. Если вы удалите их, это сработает, и вы сможете построить свой проект снова.
источник
У меня была эта ошибка в моей консоли Eclipse. Оказывается, у меня было две банки с одинаковым содержанием, но разными именами, и они конфликтовали друг с другом. Я просто удалил один из них и сумел установить приложение на устройство.
источник
Я получал эту ошибку, потому что я выпустил, что мой
ant release
сбой, потому что у меня не хватило места на диске.источник
Я получил эту ошибку, когда попытался установить проект Xamarin, созданный на основе предварительного просмотра Android N, на телефон под управлением api v23. Решение - не делать этого.
источник
Другой способ получить эту ошибку - это создать с помощью
ant
MacOS и иметь файл значка Finder (Icon\r
) в дереве исходного кода приложения. Похоже, онjarsigner
не может справиться с возвратом каретки в имени файла и, хотя он будет утверждать, что подпись действительна, если вы-verify
APK, он всегда приводит к APK, который не устанавливается на устройстве. По иронии судьбы плагин Google Drive Finder является отличным источником файлов значков Finder.Решение состоит в том, чтобы исключить файлы-нарушители (которые в любом случае бесполезны в APK) с помощью спецификатора, подобного следующему
fileset
:источник
Эта проблема произойдет, если вы устанавливаете неподписанную версию APK. Проверьте, правильно ли вы установили APK.
источник
У меня была эта проблема с ионным кодом / кодом Visual Studio (запустить Android на устройстве):
Я удалил приложение на мобильном устройстве («Настройки» / «Приложения»), ошибка исчезла и приложение запускается.
источник
Это выдает эту ошибку для меня сегодня, потому что у меня есть приложение с минимальной SDK 28 и я запускаю игру на эмуляторе с SDK-версией 23. Обычно это невозможно (А.С. Грей выключил кнопку воспроизведения), но сегодня не так много.
источник
Сначала попробуйте сделать это:
источник
Если вы используете эмулятор, попробуйте сбросить его, и если вы сначала удалите приложение на мобильном устройстве, а затем отключите режим разработчика, а затем включите его, проблема будет решена.
источник