Перетаскивание пакета Android * .APK в AVD (виртуальное устройство Android) вызывает загадочную ошибку:
The APK failed to install.
Error: Could not parse error string
Неизвестные источники разрешены
android.api = 24
android.minapi = 24
android.sdk = 24
Однако я использовал Nougat, разве это не было до Oreo? И я разрешаю Неизвестным источникам
Можете ли вы проверить минимальную версию SDK для этого приложения? И ваши виртуальные устройства Android версии
Версия AVD должна быть больше или равна минимальной версии SDK приложения.
Если больше, попробуйте включить отладку по USB.
По умолчанию для всех AVD этот параметр установлен на «Разрешено», и это относится как к AVD, так и к моему телефону, я приложил снимок экрана.
Добавлены минимумы SDK
Выполнение следующих действий, похоже, исправило это:
buildozer.spec (biuldozer поддерживает не все SDK)Для меня в образе системы эмулятора Android 9 (API 28) отключение Google Play Protect из приложения Play Store помогло решить проблему, и я смог избавиться от ошибки синтаксического анализа.
To disable Google Play Protect. Open "Play Store" application => tap on Menu button => select "Play Protect" option => Disable the options "Scan device for security threats".
Спасибо. Я злился на то, почему не устанавливается Kivy-Buildozer .apk, и на отсутствие ошибок - никаких причин для такого поведения.
Мне удалось решить эту проблему, ПЕРЕИМЕНОВав файл apk и убедившись, что:
Надеюсь, это поможет тебе.
Мне пришлось создать новый apk с более высоким VersionCode, чем текущее установленное приложение.
У моего симулятора была версия 8, и когда я пытался установить новый apk с той же версией, я получал указанную вами ошибку, поэтому решением было увеличить versionCode и сгенерировать новый apk
Сделайте это в файле build.gradle (Module: App)
android {
defaultConfig {
versionCode 9 <---
versionName "1.1.0"
...
}
...
}
Другое решение - удалить текущее приложение и установить новый apk.
Это сработало для меня ...
HOWEVER, if I upload this same APK to my actual Android Device, IT WORKS! Not only does it install, but it opens and runs my app just fine with no errors
Это говорит мне, что это может быть связано с тем, что ваше приложение использует собственные библиотеки, которые не соответствуют архитектуре процессора эмулятора (см. Этот вопрос)
Чтобы получить более подробное сообщение об ошибке, установите приложение через терминал:
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
да. Я только что обновил эмулятор через sdk manager, и он начал работать нормально
Откройте Android Studio. Инструменты меню, Менеджер SDK, Вкладка Инструменты SDK. Посмотрите на строчку «Эмулятор Android».
У меня работала только установка с помощью команды adb.
Я столкнулся с той же проблемой. Проблема в том, что если такое же приложение уже установлено с та же версия на эмуляторе, то он не получит обновления / установки. он выдаст ту же ошибку, что и вы.
Попробуйте следующие решения, чтобы исправить это.
Удалите старый APK из эмулятора, а затем перетащите новый APK, он установит приложение
Измените номер версии из файла Build.gradle, как предлагает @ Chuy47, соберите новый APK и установите его.
Надеюсь, поможет.
Проведя довольно долгое время, страдая от этой проблемы, после создания apk с использованием p4a с использованием флага armeabi-v7a, я обнаружил проблему, как указано в ответе @Melquiades, эмулятор по умолчанию использует архитектуру x86, поэтому, конечно, он не будет совместим .
Решение состоит в том, чтобы собрать вам apk для x86, что вы можете сделать, указав его в команде создания p4a с помощью флага архива - --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 для каждой архитектуры. Вы все еще можете выпустить в Play Store, поскольку у 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.
Вы не удалили приложение из эмулятора или ваш apk просто не подписан
*Disclamer - This is to save time , to automatically generate signedApk otherwise you know you can get your signed Apk through ... click on Build-> then GenearateSignedApk
Для меня это тоже было проблемой. Но позже я обнаружил, что мой рабочий код не подписан сертификатом ключа. Вы должны запустить подписанный API, чтобы установить подписанный API.
1. перейти к файлу (Alt-F)
2.Перейти к структуре проекта Смотрите, это поле откроется
SignedKeyCertificate File Path
password
keyAlis
keyAlias password
Когда удаление приложения из эмулятора не устраняет этого, все, что мне нужно сделать, это стереть данные эмулятора: в AVD Manager щелкните стрелку вниз справа для этого эмулятора и выберите «Wipe Data».
apk не удалось установить ошибка не удалось проанализировать строку ошибки
указанная выше ошибка может быть вызвана тем, что:
Удачи.
Я решил это вроде;
Мое протестированное приложение - это приложение, поддерживающее реакцию.
Ваш сервер? это общее решение для всех? Существует множество приложений, которым вообще не нужен сервер, но они могут вызывать подобные проблемы.
Насколько я понимаю, у этой проблемы нет четкого или окончательного решения. Я перепробовал все ответы безуспешно. Поскольку это проблема, которую я должен решить; Я так решил. Ответ, которым я поделился, заключается в том, что такие друзья, как я, которые пробуют все ответы, которые не дают успешных результатов, могут решить эту проблему с помощью моего ответа. Я бы хотел, чтобы вы попробовали это, прежде чем судить. Мне жаль. @ Билал
ДЛЯ FLUTTER DEV
Я перешел с Android на Flutter, одна из моих привычек перед выпуском - закидывать apk в эмулятор, чтобы убедиться, что все в порядке. Но с Flutter это не работает. После поиска я обнаружил, что ошибка связана с архитектурой x86, но почему я могу нормально отлаживать на x86, но не могу установить? Ответ: Flutter по-прежнему поддерживает x86 для отладки, но не для выпуска: https://github.com/flutter/flutter/issues/43005
Если вы принудительно собираете флаттер на x86:
build apk -t lib/env/main_stag.dart --flavor stag --target-platform android-arm,android-arm64,android-x64,android-x86
Выкину ошибку:
Could not find io.flutter:x86_release:1.0.0
Чтобы дважды проверить, просто выполните следующие действия:
Шаг 1:
Попробуйте установить приложение через терминал:
adb install app_name.apk
Вы можете увидеть это:
adb: failed to install app_name.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries
Шаг 2:
Перейдите в AVD Manager, проверьте, является ли ваш процессор эмулятора x86.
Шаг 3:
Создайте новый эмулятор с x86_64, чтобы вы могли установить apk и отлаживать с помощью того же эмулятора.
Если вы пытаетесь установить новый файл api, убедитесь, что вам нужно удалить существующее приложение (если оно есть) в эмуляторе. Удаление старого приложения и установка файла приложения сработали для меня
У меня сработало убийство эмулятора Android из диспетчера задач, повторное открытие эмулятора и запуск APK.
очистите память эмулятора и перезапустите эмулятор, он будет работать нормально.
Посмотрев на emulator-5554 неавторизован для устройств adb, я обнаружил, что вы должны использовать Target Google APIs вместо Google Play для эмулятора Android.
Я также сталкиваюсь с этой проблемой, но эта проблема связана с недавно обновленными версиями oreo, я предполагаю, что это связано с безопасностью, говоря, что наши приложения не проверены (строка связана с именем нашего пакета, я думаю) и для обеспечения безопасности наших устройств они не устанавливать вручную на устройства Android - показывая угрозу безопасности с помощью Play Protect.