"Ошибка анализа: проблема с парсией пакета" при установке приложения Android

Я получил эту ошибку при установке приложения Android (Parse Error : There is a problem parsing the package.). Я сделал следующие шаги.

  • Впервые я установил приложение, и он отлично работает.

  • Я внесла изменения в существующее приложение и изменил версию no в файле манифеста.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.openintents.samples.BasicOpenARDemo" android:versionCode="2" android:versionName="1.0.1">
    
  • Затем я экспортирую приложение и завершу процесс подписи кода. Для этого щелкните правой кнопкой мыши ваш проект node > выберите "Экспорт". Там вы увидите волшебника. Выполните шаги и завершите подпись кода.

  • Я получил файл ARDemo.apk, затем я изменил его имя на ARDemo1.apk

  • Затем я отправил этот файл apk на мобильную SD-карту и начал установку. Я получил вышеуказанную ошибку.

Я googled, они говорят, что проблема с распаковкой файла манифеста.

Может ли кто-нибудь сказать мне, что может быть не так со мной?

Ответ 1

Вы сказали, что при первом запуске приложения он работал нормально.

Единственная разница в шагах, которые вы указали между двумя версиями:

  • Номер версии (я предполагаю что это не участвовало в нарушение чего-либо)
  • Код
  • Имя файла .apk

Попробуйте переименовать файл ARDemo1.apk обратно в ARDemo.apk(обязательно создайте резервную копию старой версии) и посмотрите, поможет ли это. Я предполагаю, что это имеет какое-то отношение к имени apk.

Если он по-прежнему не работает, вы можете удалить имя файла apk в качестве источника проблемы и начать расследование 2) путем перестройки старой версии и посмотреть, есть ли у вас такая же проблема снова. Если проблема не возникает с восстановленной версией вашего старого кода, то вы знаете, что это должно быть чем-то связано с вашим кодом.

Я надеюсь, что вы попадете куда-нибудь.

Cheers, Джозеф

Ответ 2

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

  • Имя пакета изменяется после подписания: используйте точное имя в качестве подписанного пакета (вместо этого отредактируйте имя в манифесте)
  • Пакет скомпилирован на более высоком уровне API. Исправьте уровень API в файле манифеста.
  • Пакет выполнен с SD-карты: Запустите (установите) apk файл из памяти телефона или используйте команду adb для ее установки

Ответ 3

Я только видел ошибку синтаксического анализа, когда версия Android на устройстве была ниже версии, с которой было скомпилировано приложение. Например, если приложение скомпилировано для android OS v2.2, и ваше устройство имеет только ОС Android v2.1, вы получите ошибку синтаксического анализа при попытке установить приложение.

Ответ 4

Причина заключается в том, что apk не подписан. После подписания apk проблема будет решена. http://ionicframework.com/docs/guide/publishing.html Пожалуйста, используйте ссылку по инструкциям, чтобы подписать apk.

Ответ 5

Вместо того, чтобы снимать в темноте, найдите причину этой ошибки, установив ее через adb:

adb -s emulator-5555 install ~/path-to-your-apk/com.app.apk

Замените emulator-5555 на имя вашего устройства. Вы можете получить список, используя:

adb devices

При неудаче это даст причину. Общие причины и их исправления:

  1. INSTALL_PARSE_FAILED_NO_CERTIFICATES: ссылка
  2. INSTALL_FAILED_UPDATE_INCOMPATIBLE: ссылка

Ответ 6

Если вы компилируете и экспортируете файл apk в SDK версии 2.1, он не будет работать ни на одной версии Android ниже вашего экспорта SDK "2.1". Android-совместимое программное обеспечение не совместимо с обратной совместимостью. Например, если вы программируете с помощью андроида NDK (дополнение к пакету андроида SDK), который разрешает разработку в семействе C/С++, это только совместимо с Android 2.2, Android 2.2 и ниже поддерживает только java-сборки. Поэтому вы повторите ошибку "Ошибка при анализе пакета".

Ответ 7

Проверьте, поддерживает ли ваше устройство версию, указанную в minSdkVersion в AndroidManifest.xml. Если не указать более низкую версию и повторите попытку

Ответ 8

Я получил ту же ошибку (Parse Error, проблема с разбором пакета) при попытке установить пакет .apk из электронной почты. Я смог обойти эту проблему, установив установщик сторонних пакетов ApKatcher:

http://www.addictivetips.com/mobile/install-android-apps-from-gmail/

ApKatcher - не единственное решение. Мой коллега столкнулся с проблемой, установив Astro File Manager.

Вы можете найти оба приложения в Android Marketplace.

Ответ 9

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

Построить → Создать подписанный APK → [Вход] --- Далее ---> выбрать ОБА

  • V1 (Jar Подпись)
  • V2 (Полная подпись APK)

Я не знаю почему, но по крайней мере это сработало в моей ситуации.

Ответ 10

И чтобы помочь новым читателям, другой причиной могут быть ошибки в файле манифеста. Я ошибся android:service как android.service и столкнулся с той же ошибкой...

Ответ 11

Аналогичная проблема, используя этот "заимствованный" и слегка модифицированный код:

                Intent intent = new Intent(Intent.ACTION_VIEW);
                File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "myapp.apk");
                intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                result = true;

Необходимо изменить создание файла на это (запятая вместо плюса в конструкторе Файла, отсутствовала "/" после каталога загрузки):

                    File newApk = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "myapp.apk");

Ответ 12

Другая возможность заключается в том, что вы сохранили файл apk в папке приложения PRIVATE, а затем попробуйте установить (путем запуска намерения с вашего кода). в этом случае, когда вы начинаете умываться, вы получаете пакет анализа ошибок. В этом случае возникшая ошибка связана с разрешениями. Дело в том, что сохранение файла в частные папки не является хорошей практикой, однако, если вы действительно этого хотите, вы должны записать файл в MODE_WORL_READABLE при его загрузке. Учтите, что MODE_WORLD_READABLE устарел, и это решение не самое лучшее, так как оно имеет некоторые проблемы с безопасностью. Лучше всего сохранить файл во внешнем хранилище.

Ответ 13

У меня была пара плохих тегов в файле манифеста.

<meta-data>
</meta-data>

В основном, когда я скопировал код ошибки meta-data из файла pdf. Дерьмо.

Ответ 14

Другой проблемой, вызывающей эту ошибку, может быть установка APK из ограниченной точки монтирования SD-карты /mnt/media_rw/MicroSD.

Используйте неограниченную точку монтирования /Removable/MicroSD.

Ответ 15

Для всех, кто имеет эту проблему, единственный раз, когда я получал эту ошибку, была версия API в конфигурации Android Build не соответствует тому, что на физическом устройстве.

Зайдите в Eclipse и щелкните правой кнопкой мыши на своем проекте и перейдите к свойствам. Выберите Android - КОТОРОЕ ПРИНИМАЕТ ВАС, ЧТОБЫ ЗАРЕГИСТРИРОВАТЬСЯ. Настройте целевую аудиторию для соответствия устройству и проверьте, устраняет ли это проблему.

Ответ 16

У меня была эта проблема, даже когда я указал правильную версию minSDK и targetSDK. Моя проблема заключалась в том, что я использовал "android:theme="@android:style/Theme.NoTitleBar.Fullscreen" в активности запуска, на устройстве Jellybean. Когда я удалил этот атрибут, он сработал.

Ответ 17

Одна из причин может заключаться в том, что имя вашей деятельности не определено в манифесте

    <activity
          android:name=""
          ...>
</activity>

выше код создавал ту же проблему со мной

Ответ 18

Как уже упоминалось в двух других ответах, при установке с SD-карты могут возникнуть проблемы. В моем случае я распространял свое приложение с помощью вложения электронной почты, и он обычно работал нормально. Просто откройте электронную почту и загрузите приложение (оно, по-видимому, идет на SD-карту), и снова щелкните по нему, и оно будет установлено.

Но в один прекрасный день это не сработало, и оказалось, что это связано с тем, что я подключил телефон к моему компьютеру разработки через USB, и это поместило SD-карту в другом режиме или что-то в этом роде. Таким образом, решение было просто отключить телефон от ПК, а затем отправить электронное письмо еще раз и загрузить приложение снова. Или поместите USB-соединение в режим "только зарядка", чтобы SD-карта не была "подключена" к ПК.

Ответ 19

Вы также можете проверить журналы на устройстве, чтобы убедиться, что это что-то простое, как проблема с разрешениями. Вы можете проверить журналы с помощью adb с компьютера хоста/отладки:

adb logcat

Или, если у вас есть доступ к консоли (или при использовании консоли Android-x86 получите консоль, набрав Alt + F1), вы можете проверить журналы с помощью команды logcat:

logcat

Ответ 20

У меня была та же проблема, что и файл apk, экспортированный из android‌ Tools > Export. Вместо этого я использовал файл apk в папке bin, и он сработает!

P.S. Файл apk в папке bin создается после первого запуска приложения в eclipse.

Ответ 21

Как уже упоминалось @Veneet Reddy, установите его через ADB.

Перейдите в ADT Bundle/sdk/platform-tools за вашим файлом .apk и запустите командную строку от имени администратора.

Затем выполните команду adb devices которая выведет список подключенных устройств или эмуляторов, которые работают.

enter image description here

Затем запустите adb -s yourDeviceID install yourApk.apk

enter image description here

Примечание: удалите приложение, если вы уже установили перед повторной установкой.

Ответ 22

Я столкнулся с тем же сообщением об ошибке "Ошибка анализа: проблема с парсингом пакета" с моими подписанными APK, но я подозреваю, что это может быть вызвано разными причинами.

Чтобы проверить это, я сделал следующее:

Настройка Windows 8.1 Затмение ADT Build: v22.6.2-1085508

Я создал типичное новое приложение Helloworld, принимающее все значения по умолчанию.

Я запускал приложение на эмуляторе и поддерживал устройство.

Затем я загрузил и установил apk на свое живое устройство и успешно выполнил его.

Он создал apk в папке bin размером 782 КБ.

Затем я экспортировал приложение Helloworld в ту же папку bin, которая подписала приложение из моего хранилища ключей, которое ранее использовалось для продвижения в Google Play.

Он создал APK размером 385 КБ (заменив оригинальный apk).

Я загрузил apk на свое устройство, и когда я пошел на его установку, я получил сообщение об ошибке "Ошибка синтаксического анализа: проблема с разбором пакета" (это тот же пакет, который загружен и установлен, когда выполняется как не экспортированная форма).