Die APK konnte nicht installiert werden. Fehler: Fehlerzeichenfolge konnte nicht analysiert werden

Lesezeit: 7 Minuten

Benutzer-Avatar
Jonathan

Das Ziehen und Ablegen eines Android-Pakets *.APK in ein AVD (Android Virtual Device) löst einen kryptischen Fehler aus:

The APK failed to install.
Error: Could not parse error string
  • Ich habe ein AVD mit der neuesten API (28) und eines ausprobiert, das zu meinem eigenen Telefon passt (Nougat 7.0).
  • Das APK ist ein Python-Kivy-APK, das mit buildozer erstellt wurde
  • Ich bin neu in der Android-Entwicklung. Ich weiß gar nicht, wo ich anfangen soll, das zu debuggen. Gibt es ein besseres Protokoll?
  • Wenn ich das APK über den Dateimanager auf das AVD hochlade und installiere, schlägt es ebenfalls fehl.
  • Wenn ich jedoch dieselbe APK auf mein tatsächliches Android-Gerät hochlade, FUNKTIONIERT ES! Es wird nicht nur installiert, sondern meine App wird auch ohne Fehler geöffnet und ausgeführt
  • Unbekannte Quellen sind erlaubt

    (int) Zu verwendende Android-API

    android.api = 24

    (int) Minimal erforderliche API

    android.minapi = 24

    (int) Zu verwendende Android-SDK-Version

    android.sdk = 24

    (str) Zu verwendende Android-NDK-Version

    android.ndk = 9c

Geben Sie hier die Bildbeschreibung ein

Die APK konnte nicht installiert werden.  Fehler: Fehlerzeichenfolge konnte nicht analysiert werden

  • Ich bin auch mit diesem Problem konfrontiert, aber dieses Problem stammt von neu aktualisierten Oreo-Versionen. Ich denke, es hängt mit der Sicherheit zusammen, die besagt, dass unsere Apps nicht verifiziert sind (die Zeichenfolge hängt mit unserem Paketnamen zusammen, denke ich) und um die Sicherheit unserer Geräte zu gewährleisten, sind sie es nicht manuell auf Android-Geräten installieren – Sicherheitsrisiko durch Spielschutz anzeigen.

    – kartar kat

    11. August 2018 um 1:38 Uhr

  • Ich habe aber Nougat verwendet, ist das nicht vor Oreo? Und ich erlaube unbekannte Quellen

    – Jonathan

    11. August 2018 um 5:10 Uhr

Wenn ich jedoch dieselbe APK auf mein tatsächliches Android-Gerät hochlade, FUNKTIONIERT ES! Es wird nicht nur installiert, sondern meine App wird auch ohne Fehler geöffnet und ausgeführt

Dies sagt mir, dass dies daran liegen könnte, dass Ihre App native Bibliotheken verwendet, die nicht mit der Emulator-CPU-Architektur übereinstimmen (siehe diese Frage).

Um eine detailliertere Fehlermeldung zu erhalten, installieren Sie Ihre App über das Terminal:

adb install path_to_your_app/name_of_your_app.apk

Sie könnten dies sehen:

adb: Name_Ihrer_App konnte nicht installiert werden.apk: Fehler [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries

  • yes. I just updated the emulator via sdk manager and it started work ok

    – CodeToLife

    Apr 6, 2019 at 12:09

  • Open Android Studio. Menu Tools, SDK Manager, Tab SDK Tools. Look at “Android Emulator” line.

    – Ton

    Jul 31, 2019 at 9:20

  • Only installing via adb command worked for me.

    – Muhammad Shehroz Sajjad

    May 19, 2021 at 9:52

user avatar
Bilal

I was facing the same issue. The problem is, if the same application is already installed with the same version on the Emulator then it won’t get update/install. it will throw the same error as you are getting it.

Try the following solutions to fix it.

  1. Uninstall the old APK from Emulator and then drag & drop the new APK, it would install the application

  2. Change the version number from Build.gradle file as suggested by @Chuy47, build the new APK and install it

Hope it helps.

user avatar
TellMeWhy

After spending a rather long time suffering from this problem myself after building an apk using p4a using the armeabi-v7a flag, I discovered the problem, as outlined in @Melquiades answer, the default emulator uses x86 architecture, so of course it won’t be compatible.

The solution is to build you apk for x86, which you can do by specifying such in the p4a creation command using the arch flag – --arch=x86. You can see the available options here: https://github.com/kivy/python-for-android/blob/master/pythonforandroid/archs.py

Personally, running python3crystax ndk with any flag other than armeabi-v7a failed to find the appropriate binaries. Running using python3 and the android ndk likewise failed for all architectures.

If you are using python3 and would like to build for all architectures, you can use buildozer. Specifiy python3crystax in the buildozer.spec requirements, link the ndk directory on the android.ndk_path line and specify your chosen architecture on the line

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

install python 3.5 following this tutorial: https://tecadmin.net/install-python-3-5-on-ubuntu/. You may need to downgrade or upgrade your cython version, depending on your current setup. Note that 0.27, 0.27.2 both don’t work with Kivy. I found cython 0.25.2 worked for me. You can remove your previous version and install you chosen with:

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

If you’re running on Ubuntu of course 🙂

And there you have it. You would need to create multiple apks for the different architectures by changing the arch option in your buildozer.spec and running buildozer android debug for each architecture. You can still release to the play store as Google has the option to upload multiple apks: https://developer.android.com/google/play/publishing/multiple-apks.

Good luck ;P

EDIT python-for-android commands using SDK 20 / API 26 / NDK 15c / Python 3.7 and SDK 20 / API 24 / NDK 14b / Python 3.7 work. I have not personally tested the latter but more info can be found in this python-for-android post. Having tested the former, I can verify it works but does not support sqlite3.

I had to create a new apk with a higher VersionCode than the current installed app.

My simulator had the version 8 and when I was trying to install a new apk with the same version I was getting the error you mention, so the solution was to increase the versionCode and generate a new apk

Do it in the build.gradle (Module: App) file

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

Another solution is to uninstall the current app and install the new apk

user avatar
Beatle Refractor

You haven’t uninstalled the app from emulator or your apk is just not signed

*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

It was an issue for me too.
But later I found that my running code is not signned with key certificate.
You must run signed api to install signed API.

1.Go to File(Alt-F)

2.Go to project Structure See this box will open

  1. Here you Click on Module and
  2. Click on app,
  3. Click on SigningCofig
  4. Click on debug
    Change the signing config as per your released API
    feed the details

SignedKeyCertificate File Path

password

keyAlis

keyAlias password

user avatar
thanhbinh84

FOR FLUTTER DEV

I switched from Android to Flutter, one of my habit before releasing is throwing the apk to emulator to make sure everything is okay. But with Flutter it doesn’t work. After searching I found the error is relating to x86 architecture, but why I can debug normally on x86 but cannot install? The answer is Flutter still support x86 for debug but not for release: https://github.com/flutter/flutter/issues/43005

If you force flutter build x86:

build apk -t lib/env/main_stag.dart --flavor stag --target-platform android-arm,android-arm64,android-x64,android-x86

I will throw the error:

Could not find io.flutter:x86_release:1.0.0

In order to double check, just follows these steps:

Step 1:

Try to install your app via terminal:

adb install app_name.apk

You might see this:

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

Step 2:

Go to AVD Manager, check if your emulator CPU is x86

enter image description here

Step 3:

Create a new emulator with x86_64, so you can install apk and debug with the same emulator.

user avatar
Qasim

For me, On Android 9 (API 28) emulator system image, disabling Google Play Protect from play store app worked the trick, and i was able to get rid of the parse error.

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”.

  • Thanks. I was getting mad about why Kivy-Buildozer .apk was being not installed and no error – no reason about that behaviour.

    – Reaversword

    Mar 21, 2019 at 18:01

1228210cookie-checkDie APK konnte nicht installiert werden. Fehler: Fehlerzeichenfolge konnte nicht analysiert werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy