Что такое ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES?

Я пытался изменить свою деятельность по умолчанию / main / startup (как бы вы это называете), отредактировав файл androidmanifest.xml . Все, что я сделал, это изменить свойство android:name . однако это полностью нарушило все приложение. когда я пытаюсь установить его сбой и читает.

Ошибка установки: INSTALL_PARSE_FAILED_NO_CERTIFICATES

Когда я попытался изменить его на прежнее состояние, он все равно дал мне ту же ошибку … Что я сделал?

15 Solutions collect form web for “Что такое ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES?”

Вы отредактировали файл AndroidManifest.xml непосредственно в файле .apk ? Если это так, это не сработает.

Каждый Android- .apk должен быть подписан, если он будет установлен на телефоне , даже если вы не устанавливаете его через Market. Инструменты разработки работают вокруг этого, подписываясь с сертификатом разработки, но .apk все еще подписан.

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

Поэтому, если вы внесете какие-либо изменения в свое приложение, вам потребуется перестроить .apk чтобы он был подписан правильно.

Я обнаружил, что эта ошибка также может возникать при использовании неправильной конфигурации подписания. Как описано здесь , Android 7.0 представляет новую сигнатурную схему V2 . Схема V2 подписывает весь APK, а не только JAR, как это делается в схеме V1. Если вы подписываете только V2 и пытаетесь установить его на целевой пре-7.0, вы получите эту ошибку, так как сами JAR не подписаны, а pre-7.0 PackageManager не может обнаружить наличие подписи V2 APK.

Чтобы быть совместимым со всеми целевыми системами, убедитесь, что APK подписан обеими схемами, проверив оба windows версии подписи в диалоговом окне « Сгенерировать подписанный APK» в Android Studio, как показано здесь:

введите описание изображения здесь

Если ожидаются только 7.0 цели, то нет необходимости включать подпись V1.

Я обнаружил, что это было вызвано моей версией JDK.

У меня была эта проблема с «муравей», и это было связано с этим ПРЕДУПРЕЖДЕНИЕМ, упомянутым в документации:

http://developer.android.com/guide/publishing/app-signing.html#signapp

Внимание: с JDK 7 алгоритм подписывания по умолчанию изменился, и вам нужно указать алгоритмы подписи и дайджеста (-sigalg и -digestalg), когда вы подписываете APK.

У меня JDK 7. В моем журнале Ant я использовал -v для подробностей, и он показал

 $ ant -Dadb.device.arg=-d -v release install [signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments: [signjar] '-keystore' [signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore' [signjar] '-signedjar' [signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk' [signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk' [signjar] 'mykey' [exec] pkg: /data/local/tmp/PairFinder-release.apk [exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 

Я подписал JAR вручную и zipaligned, но он дал несколько другую ошибку:

 $ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey $ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk $ adb -d install -r bin/PairFinder-release.apk pkg: /data/local/tmp/PairFinder-release.apk Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] 641 KB/s (52620 bytes in 0.080s) 

Я нашел, что ответил здесь.

Как работать с INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES без удаления

Мне нужно было только удалить его, а потом он сработал!

 $ adb -d uninstall com.kizbit.pairfinder Success $ adb -d install -r bin/PairFinder-release.apk pkg: /data/local/tmp/PairFinder-release.apk Success 641 KB/s (52620 bytes in 0.080s) 

Теперь мне нужно изменить файл build.xml, чтобы использовать эти параметры при подписании!

Итак, вот: C: \ Program Files \ Java \ android-sdk \ tools \ ant \ build.xml

   к   

(для меня), используя в keytool аргументы

 -sigalg MD5withRSA -keyalg RSA -keysize 1024 

и использование в jarsigner

 -sigalg MD5withRSA -digestalg SHA1 

решение найдено в

Какие существуют подписи для подписания Android APK?

В большинстве случаев решение этой ошибки очень просто:

  1. Удалите свой apk
  2. Очистите свой Android-проект
  3. Создайте свой Android-проект
  4. Установите / запустите apk

Это уродливое, но быстрое решение: используйте JDK 6 вместо 7.

После того, как вы прочитали ответ Chloe, я удалил свой JDK 7 (в любом случае он не нужен в настоящее время) и установлен JDK 6. Это исправило его. Лучшее решение позволит использовать ant JDK 6 (без удаления 7). Возможно, возможно изменение / установка этого свойства:

java.library.path

в файле local.properties. Он находится в каталоге проекта (root).

Android не работает с JDK 7 в любом случае (всего 6 или 5), поэтому сделайте так, что скрипт ant также использует JDK 6 или 5, вероятно, является хорошим решением.

В моем случае я мог бы создавать и запускать сборки релизов, но при попытке выполнить отладочную сборку получил ошибку INSTALL_PARSE_FAILED_NO_CERTIFICATES .

Решение заключалось в том, чтобы удалить файл debug.keystore и позволить ADT воссоздать его. Похоже, что он истек.

Лучшим долгосрочным решением является создание debug.keystore , который не истекает через год, а не позволяет ADT создавать его. Вот команда для этого:

 keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000 

При появлении запроса введите следующие значения:

  • Имя и фамилия: Android Debug
  • Организационная единица: Android
  • Название организации: Неизвестно
  • Город или местность: Неизвестно
  • Штат или провинция: Неизвестно
  • Код страны: США

Установка переменной JAVA_HOME в JDK 5 или 6 (вместо JDK 7) зафиксировала ошибку.

Это может произойти, если вы попытаетесь включить библиотеку .jar , содержащую файл AndroidManifest.xml .

  • Если это чистая Java, убедитесь, что вы не включили ее в экспорт .jar
  • Если это не чистая Java (то есть это проект Android), тогда вы должны включить его в качестве проекта библиотеки

Его, поскольку ранее созданная assembly и ток имеют конфликт в версии подписи между v1 (подпись jar) и v2 (полная подпись APK),

Исправить отметку правильной версии подписи в диалоговом окне «Создать подпись APK»

Через некоторое время и несколько онлайн-streamов по этому вопросу мне удалось исправить мой проект.

Это главным образом принимая во внимание последние файлы ( могут быть изображения или макеты ), которые вы вставляете. Если вы удалите их, это сработает, и вы сможете снова создать свой проект.

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

Я получал эту ошибку, потому что я действительно освобождал, что мой ant release терпел неудачу, потому что у меня закончилось дисковое пространство.

Я получил эту ошибку, когда попытался установить проект Xamarin, созданный для предварительного просмотра Android N на телефоне с api v23. Решение состоит в том, чтобы не делать этого.

Другой способ получить эту ошибку – построить с помощью ant на macOS и иметь файл значков Finder ( Icon\r ) в исходном дереве приложения. Похоже, что jarsigner не может справиться с возвратом каретки в имени файла и, хотя он будет требовать, чтобы подписание было действительным, если вы -verify APK, это всегда приводит к APK, который не устанавливается на устройстве. Как ни странно, плагин Google Drive Finder является отличным источником файлов значков Finder.

Решение состоит в том, чтобы исключить файлы-нарушители (которые в любом случае бесполезны в APK) с таким спецификатором в fileset :

   
  • Как установить конкретный JDK в Mac OS X?
  • Как найти UpgradeCode и ProductCode установленного приложения в Windows 7
  • Что такое полный class базы данных Android для существующей базы данных SQLite?
  • Создание настройки приложения в visual studio 2013
  • Ошибка , когда я пытался обновить приложение
  • Добавление пользовательских prerequsites в проект настройки визуальной студии
  • Какова польза и реальная цель установки программы?
  • Как я могу получить последнюю версию JRE / JDK как zip-файл, а не EXE или MSI-установщик?
  • Как вручную установить артефакт в Maven 2?
  • Visual Studio 2013 - Нет установленных веб-шаблонов Visual Basic / Visual C #
  • Как изменить местоположение библиотеки в R?
  • Давайте будем гением компьютера.