APK не удалось установить. Ошибка: не удалось разобрать строку ошибки

Перетаскивание пакета Android *.APK в AVD (виртуальное устройство Android) вызывает загадочную ошибку:

The APK failed to install.
Error: Could not parse error string
  • Я попробовал AVD с последним API (28) и тем, который соответствует моему собственному телефону (Nougat 7.0)
  • APK представляет собой Python Kivy APK построен с buildozer
  • Я новичок в разработке Android. Я даже не знаю, где начать отлаживать это. Есть лучший журнал?
  • Если я загружаю APK в AVD с помощью файлового менеджера и установить его также не удается.
  • ОДНАКО, если я загружу этот же APK на свое устройство Android, ЭТО РАБОТАЕТ! Он не только устанавливает, но и открывает и запускает мое приложение без ошибок
  • Неизвестные источники разрешены

    (int) Android API для использования

    android.api = 24

    (int) Требуется минимум API

    android.minapi = 24

    (int) Версия Android SDK для использования

    android.sdk = 24

    (str) версия Android NDK для использования

    android.ndk = 9c

enter image description here

The APK failed to install. Error: Could not parse error string

Ответ 1

ОДНАКО, если я загружу этот же APK на свое устройство Android, ЭТО РАБОТАЕТ! Он не только устанавливает, но и открывает и запускает мое приложение без ошибок

Это говорит мне, что это может быть потому, что ваше приложение использует собственные библиотеки, которые не соответствуют архитектуре процессора эмулятора (см. Этот вопрос)

Чтобы получить более подробное сообщение об ошибке, установите приложение через терминал:

adb install path_to_your_app/name_of_your_app.apk

Вы можете увидеть это:

adb: failed to install name_of_your_app.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries

Ответ 2

Я столкнулся с той же проблемой. Проблема в том, что если на эмуляторе уже установлено то же приложение с той же версией, оно не получит обновление/установку. он выдаст ту же ошибку, что и вы.

Попробуйте следующие решения, чтобы исправить это.

  1. Удалите старый APK из эмулятора, а затем перетащите новый APK, он установит приложение

  2. Измените номер версии из файла Build.gradle в соответствии с предложением @Chuy47, соберите новый APK и установите его

Надеюсь, поможет.

Ответ 3

Мне пришлось создать новый apk с более высоким VersionCode, чем текущее установленное приложение.

У моего симулятора была версия 8, и когда я пытался установить новый apk с той же версией, я получал сообщение об ошибке, поэтому решение заключалось в том, чтобы увеличить версию Code и создать новую apk

Сделайте это в файле build.gradle(Module: App)

android {
    defaultConfig {
        versionCode 9          <---
        versionName "1.1.0"    
        ...
    }
    ...
}

Еще одно решение - удалить текущее приложение и установить новый apk

Ответ 4

Потратив довольно много времени на armeabi-v7a этой проблемы после сборки apk с использованием p4a с использованием p4a armeabi-v7a, я обнаружил проблему, как указано в ответе @Melquiades, эмулятор по умолчанию использует архитектуру x86, поэтому, конечно, он не будет быть совместимым

Решение состоит в том, чтобы создать свой apk для x86, что можно сделать, указав это в p4a создания p4a используя флаг arch - --arch=x86. Вы можете увидеть доступные варианты здесь: https://github.com/kivy/python-for-android/blob/master/pythonforandroid/archs.py

Лично при запуске python3crystax ndk с любым флагом, кроме armeabi-v7a не удалось найти соответствующие двоичные файлы. Запуск с использованием Python3 и Android ndk также не удалось для всех архитектур.

Если вы используете python3 и хотите собрать для всех архитектур, вы можете использовать buildozer. Укажите python3crystax в требованиях buildozer.spec, свяжите каталог ndk в строке android.ndk_path и укажите выбранную архитектуру в строке

# (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86
android.arch = x86

Установите Python 3.5, следуя этому руководству: https://tecadmin.net/install-python-3-5-on-ubuntu/. Возможно, вам придется понизить или обновить версию cython, в зависимости от текущей настройки. Обратите внимание, что 0.27, 0.27.2 оба не работают с Kivy. Я нашел Cython 0.25.2 работал для меня. Вы можете удалить предыдущую версию и установить выбранную вами с помощью:

sudo pip3 install -U --force-reinstall cython=0.25.2

Если вы работаете на Ubuntu, конечно :)

И там у вас есть это. Вам нужно будет создать несколько apks для разных архитектур, изменив параметр arch в buildozer.spec и запустив buildozer android debug для каждой архитектуры. Вы все еще можете выпустить их в игровой магазин, так как у Google есть возможность загрузить несколько apks: https://developer.android.com/google/play/publishing/multiple-apks.

Удачи; P

РЕДАКТИРОВАТЬ команды python-for-android, используя SDK 20/API 26/NDK 15c/Python 3.7 и SDK 20/API 24/NDK 14b/Python 3.7. Я лично не проверял последнее, но больше информации можно найти в этом сообщении Python для Android. Протестировав первый, я могу убедиться, что он работает, но не поддерживает sqlite3.

Ответ 5

Для меня, на изображении системы эмулятора Android 9 (API 28), отключение Google Play Protect от приложения Play Store работало с трюком, и я смог избавиться от ошибки синтаксического анализа.

Чтобы отключить защиту Google Play. Откройте приложение "Play Store" => нажмите на кнопку меню => выберите опцию "Play Protect" => Отключите параметры "Сканирование устройства для угроз безопасности".

Ответ 6

Убедитесь, что приложение не установлено на вашем эмуляторе (виртуальное устройство Android). При перетаскивании нового .apk или выпуска его в эмулятор вы получите сообщение об ошибке: Не удалось проанализировать строку ошибки.

1) Удалить существующее приложение с устройства

2) Перетащите, чтобы установить новый .apk

Ответ 7

Вы можете проверить минимальную версию sdk для этого приложения? И ваши виртуальные устройства Android-версия

Версия AVD должна быть больше или равна минимальной версии приложения sdk

Если это больше, попробуйте включить отладку USB

Ответ 8

Казалось, что делать следующее:

Ответ 9

Мне удалось решить эту проблему с помощью RENAMING файла apk и убедиться, что:

  1. не имеет пробелов.
  2. не начинается по номеру

Надеюсь, это поможет вам.

Ответ 10

Это сработало для меня.....

  • Открыть Play Store
  • Перейти в меню
  • Нажмите Play Protect
  • Отключить сканирование устройства на наличие угроз безопасности

Ответ 11

Ошибка: не удалось разобрать строку ошибки

Это простая ошибка.

→ Неизвестное разрешение в устройствах

 Security tab in chech 

Ответ 12

попробуйте это: эта работа для меня лучше.

enter image description here

Шаг 1 Чистый Проект

Шаг 2 Перестроить проект

Шаг 3 Запустить приложение

Я надеюсь, что это поможет вам.

Ответ 13

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

1. Нажмите Alt + F Перейти к структуре проекта . Посмотрите, это окно откроется.

Нажмите на Модуль и измените конфигурацию подписи согласно вашему выпущенному API

Ответ 14

Когда удаление приложения из эмулятора не исправляет это, все, что мне нужно сделать, это стереть данные эмулятора: в диспетчере AVD нажмите стрелку вниз в крайнем правом углу для этого эмулятора и выберите "Очистить данные".

Ответ 15

apk не удалось установить ошибку не удалось разобрать строку ошибки

вышеуказанная ошибка может быть вызвана тем, что:

  1. Версия SDK эмулятора ниже или выше APK
  2. В вашем apk есть root-проверка, если устройство рутировано, оно не будет установлено

Удачи.