"Ошибка анализа: проблема с парсией пакета" при установке приложения 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
При неудаче это даст причину. Общие причины и их исправления:
-
INSTALL_PARSE_FAILED_NO_CERTIFICATES
: ссылка -
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 на свое устройство, и когда я пошел на его установку, я получил сообщение об ошибке "Ошибка синтаксического анализа: проблема с разбором пакета" (это тот же пакет, который загружен и установлен, когда выполняется как не экспортированная форма).