- Что такое INSTALL PARSE FAILED NO CERTIFICATES error?
- 15 ответов
- Ошибка установки с сообщением INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES. не удалось установить какое-либо приложение в конкретном устройстве [дубликат]
- 15 ответов
- Troubleshooting: Cannot Run on an Android Device or Emulator
- Что такое ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES?
- Как работать с INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без удаления
Что такое INSTALL PARSE FAILED NO CERTIFICATES error?
Я пытался изменить свою активность по умолчанию/main/startup (как бы Вы ее ни называли), отредактировав . Все, что я сделал, это изменил android:name собственность. однако это полностью сломало все приложение. когда я пытаюсь установить его, он терпит неудачу и читает.
ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES
когда я попытался вернуть его в прежнее состояние, он все еще давал мне ту же ошибку. Что я наделал?
15 ответов
вы отредактировали AndroidManifest.xml непосредственно в ? Если так, то это не сработает.
Каждый Android .apk должен быть подписан, если он будет установлен на телефоне, даже если вы не устанавливаете через рынок. Инструменты разработки работают вокруг этого, подписывая сертификат разработки, но .apk все-таки подписан.
одно использование этого так устройство может сказать, если .apk является допустимым обновлением для установленного приложения, поскольку, если это так, сертификаты будут одинаковыми.
поэтому, если вы внесете какие-либо изменения в свое приложение, вам нужно будет перестроить .apk поэтому он подписывается правильно.
Я обнаружил, что эта ошибка также может возникнуть при использовании неправильной конфигурации подписи. Как описано здесь, Android 7.0 представляет новую схему подписи,V2. Схема V2 подписывает весь APK, а не только банку, как это делается в схеме V1. Если вы подписываете только V2 и пытаетесь установить на целевой объект pre-7.0, вы получите эту ошибку, так как сами банки не подписаны и pre-7.0 PackageManager не удается обнаружить присутствие V2 apk подпись.
чтобы быть совместимым со всеми целевыми системами, убедитесь, что APK подписан с обеими схемами, проверив оба поля версии подписи в Android Studio создать подписанный APK диалоговое окно как показано ниже:
Если ожидаются только цели 7.0, то нет необходимости включать подпись V1.
я обнаружил, что это было вызвано моей версией JDK.
у меня была эта проблема с «ant» , и это было связано с этой осторожностью, упомянутой в документации:
внимание: начиная с JDK 7, алгоритм подписи по умолчанию изменился, требуя, чтобы вы указывали подписи и дайджест алгоритмов (- sigalg и-digestalg) при подписании АПК.
у меня есть JDK 7. В моем журнале муравьев я использовал -v для многословия, и он показал
Я подписал банку вручную и выровнял ее, но она дала немного другую ошибку:
Я нашел, что ответил Здесь.
мне нужно было только удалить его, а затем он работал!
теперь мне нужно только изменения.xml для использования этих параметров при подписании!
Ok вот он: C:\Program файлы\Java\android-sdk\tools\ant\build.в XML
Источник
Ошибка установки с сообщением INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES. не удалось установить какое-либо приложение в конкретном устройстве [дубликат]
Легкий способ определить, является ли что-то «пройденным по ссылке», можно ли написать функцию «своп». Например, в C вы можете сделать:
Если вы не можете сделать эквивалент этого в Javascript, это не «передать по ссылке».
15 ответов
Это означает, что новая копия вашего приложения (на вашей машине разработки) была подписана другим ключом подписи, чем старая копия вашего приложения (установлена на устройстве / эмуляторе). Например, если это устройство, вы можете положить старую копию с другой машины разработки (например, на другую машину разработчика). Или старый подписан с вашим производственным ключом, а новый подписан с вашим отладочным ключом.
Я столкнулся с этим, тестируя новый Xoom. Я ранее устанавливал свое приложение из Marketplace. Позже, пытаясь протестировать новую версию приложения, я столкнулся с этой ошибкой.
Я исправил это, удалив приложение, которое было установлено через Marketplace (просто удерживайте и перетащите в корзину). После этого я смог развернуть мою версию разработки без каких-либо проблем.
Ничто из предыдущего не работало для меня. Проблема для меня была в том, что у меня был неправильный источник в моем Java Build Path для android-support-v7-appcompat. Когда вы перейдете в Project> Путь сборки> Настроить путь сборки>. На вкладке «Источник» убедитесь, что у вас есть поддержка android-support-v7-appcompat / gen, android-support-v7-appcompat / libs и android-support-v7-appcompat / src и ничего больше. Нажмите «ОК», и он должен работать.
Я получил эту ошибку даже после удаления оригинального APK, что было загадочным. Наконец, я понял, что я настроил несколько пользователей на моем Nexus 7 для тестирования и что приложение все еще установлено для одного из других пользователей. Как только я удалил его для всех пользователей, ошибка исчезла.
Сегодня у меня была такая же ошибка, но проблема была совсем не такой. Я использую ADB с Android, установленным в VirtualBox. Я попытался установить разные версии своего приложения (подписанный / не подписанный, режим отладки / выпуска) и получил две ошибки: INSTALL_FAILED_UID_CHANGED и INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES .
Теперь, глядя на /data/data/
- Завершить работу VM
- Установите изображение VDI с помощью vdfuse (чтение / запись)
- Отредактируйте файл изображения Partition1 с помощью e2fsck
- Umount и перезапустите VM
Если вы столкнулись с неудачным развертыванием устройства Andorid или эмулятора с ошибкой «Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]» в окне вывода, просто удалите существующее приложение на устройстве или эмулятор и передислоцируйте. Отладочные сборки будут использовать сертификат отладки, в то время как сборка релизов будет использовать ваш настроенный сертификат. Эта ошибка просто позволяет вам узнать, что сертификат приложения, установленного на устройстве, отличается от того, который вы пытаетесь установить. В сценариях без разработки (хранилище приложений) это может быть индикатором поврежденного или иным образом измененного приложения, которое не безопасно устанавливать на устройстве.
У меня была такая же проблема, пока я не понял, что работает симулятор, и adb пытался установить на этом
Источник
Troubleshooting: Cannot Run on an Android Device or Emulator
If you get any of the following error dialog boxes, use the suggested steps following each error box:
This error may occur for either of the following reasons:
- You try to install your application on your Android device using the same package name as a previously-installed application, but you use a signing certificate different from the certificate of the installed application. This is the case when you change the platform configuration of your application between Debug and Application Store, or when you configure a new certificate in the Provisioning options page for the Application Store platform configuration.
To solve this issue, do either of the following:
- Manually uninstall the previously-installed application from your Android device.
- Configure RAD Studio to perform a clean install every time that you run your application.
- You try to install your application on your Android device using the Application Storeplatform configuration but you do not have a certificate configured in the Provisioning options page for the Application Store platform configuration.
looks like the path to your Adb executable:
- Open the SDK Manager and verify that the value of the Adb location field is correct in the SDK Properties of your Android SDK.
- If the value is marked with a warning icon, you must update the path so that it points to your Adb executable (Android Debug Bridge).
where is the port number being used by the Android gdbserver:
- Power off or restart your Android device and then run your application again.
- Choose another debug port:
- Select Run >Parameters and enter the following in the Parameters field: -debugport= where is an alternate debug port, such as 54321.
- Then click OK.
Источник
Что такое ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES?
Я пытался изменить активность по умолчанию / main / startup (как бы вы это ни называли), отредактировав androidmanifest.xml файл. Все, что я сделал, это сменил android:name собственность. однако, это полностью сломало все приложение. когда я пытаюсь установить это не удается и читает.
Ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Когда я пытался вернуть его в прежнее состояние, он все еще давал мне ту же ошибку . Что я сделал?
Вы редактировали AndroidManifest.xml прямо в .apk файле? Если так, это не сработает.
Каждый Android .apk должен быть подписан, если он будет установлен на телефоне , даже если вы не устанавливаете через Маркет. Инструменты разработки работают вокруг этого путем подписания с сертификатом разработки, но .apk он все еще подписан.
Одно из применений этого заключается в том, что устройство может определить, .apk является ли обновление действующим для установленного приложения, поскольку если это так, сертификаты будут такими же.
Поэтому, если вы внесете какие-либо изменения в свое приложение, вам нужно будет перестроить его, .apk чтобы оно было подписано должным образом.
Я обнаружил, что эта ошибка теперь также может возникать при использовании неправильной конфигурации подписи. Как описано здесь , 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, алгоритм подписи по умолчанию изменился, и вам потребуется указывать алгоритмы подписи и дайджеста (-sigalg и -digestalg) при подписании APK.
У меня есть JDK 7. В моем журнале Ant я использовал -v для многословия, и он показал
Я подписал JAR вручную и zipaligned его, но это дало немного другую ошибку:
Я нашел, что ответил здесь.
Мне нужно было только удалить его, и тогда это сработало!
Теперь мне нужно только изменить build.xml, чтобы использовать эти параметры при подписании!
Хорошо, вот оно: C: \ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml
В большинстве случаев решение этой ошибки действительно простое:
- Удалите ваш apk
- Очистите свой проект Android
- Создайте свой проект Android
- Установите / запустите ваш apk
решил (для меня) использование в keytool аргументов
и использовать в jarsigner
решение найдено в
Я также столкнулся с той же проблемой. Сначала я сгенерировал сборку с использованием V2 и установил ее на мобильных устройствах под управлением ОС 5.1, и у меня возникла та же проблема. Но сборка работала нормально на планшете под управлением ОС 7.0. Поэтому я сгенерировал сборку с подписью V1 Jar, и она отлично работала на обоих устройствах.
Вывод: если вы поддерживаете устройство ниже Android OS 7.0. Используйте V1 JAR подпись для генерации сборки.
В моем случае я мог собирать и запускать релизные сборки, но получил INSTALL_PARSE_FAILED_NO_CERTIFICATES ошибку при попытке сделать отладочную сборку.
Решением было удалить мой debug.keystore файл и позволить ADT восстановить его. Это очевидно истекло.
Лучшим долгосрочным решением является явное создание debug.keystore объекта, срок действия которого не истекает через год, вместо того, чтобы позволить ADT его создавать. Вот команда, чтобы сделать это:
При появлении запроса введите следующие значения:
- Имя и фамилия: Android Debug
- Организационное подразделение: Android
- Наименование организации: Неизвестно
- Город или местность: неизвестно
- Штат или провинция: неизвестно
- Код страны: США
Это уродливое, но быстрое решение: используйте JDK 6 вместо 7.
Прочитав ответ Хлои, я удалил свой JDK 7 (он сейчас не нужен) и установил JDK 6. Это исправило его. Лучшим решением было бы использование ant JDK 6 (без удаления 7). Возможно возможное изменение / настройка этого свойства:
в файле 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).
большинство ответов верны. и некоторые другие причины, которые происходят, являются
► ваш мин SDK меньше, чем устройство SDK.
► на вашем устройстве установлено старое приложение с тем же именем пакета
Источник
Как работать с INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без удаления
Я попытался переустановить apk
И это показывает ошибку:
Одним из решений является удаление и установка new.apk, который отлично работает.
Но мне интересно, смогу ли я перестроить apk и переустановить без удаления. Например. Изменить конфигурацию в AndroidManifest.xml или не подписывать APK и т. Д.
Было бы очень признательно, если бы вы могли рассказать мне весь смысл «INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES».
Это означает, что новая копия вашего приложения (на вашей машине разработки) была подписана с другим ключом подписи, чем старая копия вашего приложения (установлена на устройстве / эмуляторе). Например, если это устройство, возможно, вы поставили старую копию с другой машины разработки (например, на другую машину разработчика). Или старый подписан с вашим производственным ключом, а новый подписан с вашим отладочным ключом.
Я столкнулся с этим, тестируя новый Xoom. Я ранее устанавливал свое приложение из Marketplace. Позже, пытаясь протестировать новую версию приложения, я столкнулся с этой ошибкой.
Я исправил это, удалив приложение, которое было установлено через Marketplace (просто удерживайте и перетащите в корзину). После этого я смог развернуть свою версию разработки без каких-либо проблем.
Это команда удаления приложения с устройства с помощью adb:
Это случилось со мной, когда другой разработчик в команде построил наше приложение на аппаратном устройстве, к которому я пытался развернуть. Удаление приложения из аппаратного обеспечения устранило мою проблему.
Я получил эту ошибку даже после удаления оригинального APK, что было загадочным. Наконец, я понял, что настроил несколько пользователей на моем Nexus 7 для тестирования и что приложение все еще установлено для одного из других пользователей. Как только я удалил его для всех пользователей, ошибка исчезла.
Я изменил имя пакета при кодировании обновления, чтобы я мог отлаживать его на своем устройстве через Eclipse, не удаляя старую версию, которая была установлена. Не возвращая имя пакета, которое я использовал при попытке переустановки, я получил эту же ошибку. Используя тот же самый пакет, переустановка прошла успешно.
Просто удалите старую сборку с устройства и переустановите ее. Потому что device.keystore уже существует в устройстве, поэтому просто удалите сборку и переустановите APK, и все.
Я столкнулся с другим вариантом использования, когда я получил аналогичную ошибку. Когда сначала я получил ошибку, я запаниковал и удалил /data/data/
Затем я удалил файл apk, присутствующий в /system/app (требуемый корневой доступ), и попытался удалить, и он был успешным.
После этого я попытался переустановить apk, это сработало.
Для чего это стоит, я столкнулся с этой проблемой после добавления нового плагина в проект «Кордова». У меня была кордовая сборка и установка непосредственно на устройство через USB.
Я исправил его, удалив приложение с устройства, а при следующем развертывании проблем не было.
Если вы столкнулись с неудачным развертыванием устройства или эмулятора Andorid с ошибкой «Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]» в окне вывода, просто удалите существующее приложение на устройстве или эмулятор и передислоцируйте. Отладочные сборки будут использовать сертификат отладки, в то время как сборки релизов будут использовать ваш настроенный сертификат. Эта ошибка просто позволяет вам узнать, что сертификат приложения, установленного на устройстве, отличается от того, который вы пытаетесь установить. В сценариях, не связанных с разработкой (app store), это может быть индикатором поврежденного или иным образом измененного приложения, которое не безопасно устанавливать на устройство.
Ничто из меня не работало для меня. Проблема для меня заключалась в том, что у меня был неправильный источник в моем Java Build Path для android-support-v7-appcompat. Когда вы перейдете в Project> Путь сборки> Настроить путь сборки>. На вкладке «Источник» убедитесь, что у вас есть поддержка android-support-v7-appcompat / gen, android-support-v7-appcompat / libs и android-support-v7-appcompat / src и ничего больше. Нажмите «ОК», и он должен работать.
Сегодня у меня была такая же ошибка, но проблема была не совсем то же самое. Я использую ADB с Android, установленным в VirtualBox . Я попытался установить разные версии моего приложения (подписанный / не подписанный, режим отладки / выпуска) и получил две ошибки: INSTALL_FAILED_UID_CHANGED и INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES .
Теперь, глядя на /data/data/
Решением этого было:
- Выключение виртуальной машины
- Установите изображение VDI с помощью vdfuse (чтение / запись)
- Восстановите файл образа Partition1 с помощью e2fsck
- Umount и перезапустите виртуальную машину
У меня была такая же проблема, пока я не понял, что работает симулятор, и adb пытался установить на этом
Поскольку проверка основана на имени пакета, вы можете изменить имя пакета внутри файла config.xml или манифеста для другого имени, которое вы хотите.
При публикации приложения не забудьте изменить имя!
У меня была эта проблема, пытаясь выполнить задачу градиента connectedDebugAndoidTest (или connectedAndroidTest ) в Genymotion . Запуск его на обычный эмулятор решил проблему.
Источник