Ich habe Android Studio auf 3.5 aktualisiert, seit ich auf ein APK-Installationsproblem stoße. Dies ist das einzige Protokoll, das angezeigt wird:
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry
Dies geschieht, wenn Sie versuchen, APK auf einem realen Gerät zu installieren. Wenn ich die App vom Gerät deinstalliere und dann den Build erneut ausführe, wird sie nur einmal installiert und dieser Fehler wird bei der nächsten Installation immer wieder ausgegeben. Es läuft gut auf einem Emulator, aber ich kann nicht für alles einen Emulator verwenden.
Was ich versucht habe:
- Android Studio-Konfigurationsdatei gelöscht.
- Gradle-Dateien aus dem Projekt gelöscht.
- Ungültige und zurückgesetzte Caches.
- Das Projekt wurde bereinigt / neu erstellt.
- Nach ähnlichen Problemen gesucht Stackoverflow (nichts passt zu meinem Problem)
- Sauber installiert (Alle Dateien einschließlich SDKs entfernt) Android Studio 3.5
Aktualisieren
Ich habe Linux Mint auf meinem Computer installiert und dort den AS 3.5 getestet. Aus bestimmten Gründen funktioniert auch für Geräte mit Android 7 und darunter alles einwandfrei.
Vorheriges Betriebssystem: Windows 10 1903
Aktuelles Betriebssystem: Linux Mint 19.2
Ich gehe davon aus, dass dieses Problem möglicherweise auf Windows-Computern auftritt.
quelle
INSTALL_PARSE_FAILED_NOT_APK
während der Durchführung von Espresso-TestsINSTALL_PARSE_FAILED_NOT_APK
Antworten:
Öffnen Sie das Dialogfeld Konfiguration ausführen / debuggen (Windows: Ausführen> Konfigurationen bearbeiten).
Bearbeiten Sie Ihre App> Allgemein> Installationsoptionen> Flags installieren .
Installationsflags hinzufügen
-r -t
.Diese Flags bedeuten
adb install -r -t apkpath
quelle
adb install -r -t apkpath
, denke ich. @ TaseerAhmad-r
bedeutet "vorhandene Anwendung ersetzen".-t
bedeutet "Sie müssen "Libusb-Backend verwenden" in den Einstellungen -> Debugger deaktivieren
quelle
Dieses Problem in Android Studio tritt bei Geräten auf, die niedriger als
API 26
Android 8 sind. Dies wird durch Ersatz von verursachtInstantRun
, jetzt bekannt als ApplyChanges .Es scheint nur zwei Möglichkeiten zu geben, bevor sie es im nächsten Update beheben.
API>=26
.run configuration
wechseln Siedeploy
vonAPK
nachApp bundle
und umgekehrt. Wenn ich das richtig verstehe, wird der App- und Workaround-Fehler korrekt neu erstellt.Natürlich gibt es eine Option zum manuellen Löschen der App vom Gerät, bevor die App von AndroidStudio ausgeführt wird.
quelle
API26+
wenn Sie auf klickenApply changes
, anstattrerun
? Dies ist eine neue Schaltfläche rechts vonrerun
.Für mich "löst" entweder das Deinstallieren der App oder das Reinigungsprojekt das Problem. Um es weniger frustrierend zu machen, habe ich dem Debug-Build-Typ einen sauberen Job hinzugefügt:
buildTypes { ... debug { clean } ... }
quelle
Nachdem ich die Versionshinweise zum Übernehmen von Änderungen gelesen hatte , fand ich hier endlich eine Lösung: https://developer.android.com/studio/run#apply-changes-run-fallback
quelle
Es gibt ein Problem mit Lineage OS, wie vom Google-Team unter https://issuetracker.google.com/issues/139782879 angegeben :
Es gibt keine offensichtliche Lösung (außer das Entfernen des APK aus dem Build-Ordner oder das Deinstallieren der Anwendung).
Wenn Sie zu
Nothing
OP wechseln, wird das APK nicht auf dem Gerät bereitgestellt (daher wird kein Fehler angezeigt), sodass das Problem nicht behoben wird.Bearbeiten:
Dies wurde in Android Studio 3.6 behoben.
quelle
Ich habe die Lösung in der Code-Bearbeitungslaufkonfiguration erhalten, die in Bereitstellen geändert wurde. Wählen Sie Standard-APK und installieren Sie flag = -r -t und bewerben Sie sich dann für den Lauf. Die App läuft auf allen Geräten und im Emulator. Ich war in OPPO 1 plus, Samsung Tab, Emulator auch am besten getestet .
Bitte gehen Sie auf die Schaltfläche " Konfiguration bearbeiten in der Nähe ausführen" in Android Studio
App bearbeiten> Allgemein ==> Installationsoptionen ==> Flags installieren
Add Install Flags -r -t
-r bedeutet "vorhandene Anwendung ersetzen". -t bedeutet "Testpakete zulassen"
quelle
Build> Clean Projekt seine Arbeit ist für mich. Bevor Sie eine andere Einstellung ändern, versuchen Sie dies zuerst.
Viel Spaß beim Codieren :)
quelle
Ich habe auch das gleiche Problem nach dem Upgrade auf 3.5. Ich habe mich gefragt, ob Sie Glück hatten, dass 'Run' mit einem angeschlossenen Gerät funktioniert.
UPDATE: Ich sollte dies zum Laufen bringen, indem ich "APK aus App-Bundle" unter "Installationsoptionen" im Dialogfeld "Konfigurationen ausführen / debuggen" einstelle
quelle
Das Löschen / Deinstallieren der App vom Gerät hat das Problem für mich behoben.
quelle
Fügen Sie eine " saubere " Gradle-Task-Abhängigkeit hinzu, bevor Sie Ihre Apks mithilfe der folgenden Konfiguration installieren / ausführen.
project.afterEvaluate { android.applicationVariants.all { variant -> variant.outputs.each { output -> def capitalizedVariant = variant.name.capitalize() def assembleVariantTask = project.tasks."assemble${capitalizedVariant}" assembleVariantTask.dependsOn clean } } }
Kopieren Sie den obigen Code und fügen Sie ihn in Ihre
app/build.gradle
Datei ein. Dies funktioniert für alle Build-Varianten.Insbesondere entspricht der obige Code dem folgenden, wenn Sie nur Debug- und Release-Build-Typen haben:
assembleDebug.dependsOn clean assembleRelease.dependsOn clean
quelle
Was hat bei mir funktioniert, um alte Anwendungen zu entfernen und dann das Projekt erneut auszuführen? In diesem Fall stört das alte Zeichenzertifikat nicht.
quelle
Ich habe diesen Fehler auch erhalten, als ich die Anwendung auf echtem Xiaomi Pocophone 1 ausgeführt und dieses Problem gelöst habe, indem ich die Anwendung zuerst auf dem Emulator und dann auf meinem Xiaomi Pocophone 1 ausgeführt habe
quelle
splits { abi { enable true reset() include 'x86', 'armeabi-v7a','x86_64' universalApk true } }
Aufgrund der unterschiedlichen Konstruktionen wie 'armeabi', 'x86', 'armeabi-v7a', 'x86_64' und 'arm64-v8a' müssen wir die obige Konfiguration in die Datei build.gradle einfügen.
quelle
Endlich habe ich die Lösung gefunden
Setzen Sie einfach v2SigningEnabled auf true
signingConfigs { release { v2SigningEnabled true } }
quelle
Ich habe mich dem Problem nicht selbst gestellt. Zuvor hatten wir jedoch einige Probleme mit dem Sofortlauf des Android Studio. Ich möchte vorschlagen, die folgenden Einstellungen in Ihrem Android Studio zu überprüfen und die Einstellungen zu deaktivieren, um zu überprüfen, ob Ihr Code jetzt funktioniert.
Gehen Sie zu
Android Studio -> Preference
und deaktivieren Sie Folgendes unterDeployments
.Hier ist das Neue in Android Studio 3.5, das Ihnen hilft, die Funktion besser zu verstehen.
quelle
Versuchen Sie, den Befehl "adb Geräte" auszuführen. Wenn die Ausgabe leer ist, schließen Sie das Gerät erneut an. Dies half mir mit dem gleichen Fehler. Android Studio 3.5 stellt nicht fest, dass das Gerät die Verbindung getrennt hat.
quelle
Ich habe die App vom Emulator deinstalliert, ausgeführt und alles wurde wieder normal
quelle
Für mich Aktion
minSdkVer = 22, tarSdkVer = 28
ausführenGradle -> app -> Tasks -> build -> clean && cleanBuildCache
, Problem gelöst.quelle
Ich habe das Hammersymbol gedrückt, um die App neu zu erstellen, und sie dann installiert. Also weiß ich es nicht? Die ganze Android Hack Job Plattform ist scheiße.
Das ganze Geld, das Google noch nicht einstellen oder Programmierer finden kann, die gut genug sind, um ein eigenes Betriebssystem zu entwickeln.
quelle
Ich hatte auch das gleiche Problem. Ich habe die folgenden Schritte ausgeführt: 1) Projekt reinigen 2) Projekt neu erstellt
Dies löste mein Problem
quelle
In meinem Fall kann ich nicht alle oben genannten Antworten lösen, um einen anderen Weg zu finden. Endlich habe ich die Lösung gefunden. Finden Sie einfach die richtigen Treiber des Telefons. Mein Entwicklungstelefon ist Samsung Galaxy Note 2 (MODELL: GT-N7105 / Android 4.1.2) . Ich teile nur meine Lösung mit, wie ich sie gelöst habe. Hoffe, Sie sparen Zeit.
quelle
Das Problem tritt auf, wenn Sie ein neues Modul testen. Zuerst schreiben Sie es einzeln und fügen es dann der Haupt-App hinzu. Wenn Sie es zur Haupt-App hinzufügen, löschen Sie Ihre "test_app" von Ihrem Telefon.
quelle
Ausführen -> Konfiguration bearbeiten -> Flags installieren: -r -t -> Übernehmen -> Ok
quelle
In meinem Fall funktioniert dies nur durch Deaktivieren der APK-Signaturüberprüfung:
$ adb shell settings put global verifier_verify_adb_installs 0
Und mit den
-r -t
oben genannten Flagsquelle
Es hat immer noch Fehler auf meinem Mac OS, wenn ich ein neues echtes Gerät bekomme und versuche, apk von Android Studio 3.5 zu installieren - und ich finde hässliche Wege, wie es behoben wird - öffne das Terminal im Studio und folge:
cd app/build/outputs/apk/debug adb install -r -t your_app_name.apk
Und es muss mit jedem Projekt und jedem Gerät zu tun haben !!
Bearbeitet:
Ich habe schließlich installiert
Aber stiil müssen in Installationsflags hinzugefügt werden
-r -t
quelle
Ich habe dieses Problem vor einigen Minuten bekommen, als ich versucht habe, meine App auf einem realen Gerät auszuführen, und den Gradle-Build gestoppt habe, bevor er fertig war. Was ich gerade getan habe, war, die App auf dem Gerät zu deinstallieren und die App sowohl auf dem AVD als auch auf dem realen Gerät (gleichzeitig) erneut auszuführen, und es hat funktioniert. Hoffe das funktioniert auch bei dir
quelle
Hauptlösung
Use libusb backend
Tipps:
Wenn Sie die App installieren und öffnen möchten, können Sie adb mit den folgenden Befehlen verwenden:
$ adb install -r -t absolute-path.apk $ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
GL
quelle
versuche android zu ändern:
appComponentFactory=""
zuandroid:appComponentFactory="new"
,"new"
können beliebige wörter seinquelle
Schließlich habe ich die Lösung in der Code-Bearbeitungslauf-Konfiguration erhalten, die sich in der Installationsoption DEPLOY -> von der ausgewählten 4. Option -> (Nothing) Option -> Apply ändert. Und die App funktioniert ordnungsgemäß in Android Studio 3.5. In Mobile und Emulator auch. Dies funktioniert auch in Android Version 9 einwandfrei. Dies ist eine dauerhafte Lösung.
quelle