Die Installation ist fehlgeschlagen aufgrund von: 'null' - Android Studio 3.5

80

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.

Taseer
quelle
Ich habe ein ähnliches Problem - aber für mich ist es INSTALL_PARSE_FAILED_NOT_APKwährend der Durchführung von Espresso-Tests
adek111
Ich bekomme auchINSTALL_PARSE_FAILED_NOT_APK
Jobevers
Ich bekomme auch das gleiche Problem.
Santhosh
14
wow Google, wie kannst du dies zu einer STABILEN Veröffentlichung machen ?!
0101100101
Haben Sie überprüft, ob der Sofortlauf in Ihrem Android Studio aktiviert ist?
Reaz Murshed

Antworten:

97

Ö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

Bildschirmbild

胡 晟 昊
quelle
2
Diese Flaggen bedeuten adb install -r -t apkpath, denke ich. @ TaseerAhmad
晟 昊
20
-rbedeutet "vorhandene Anwendung ersetzen". -tbedeutet "
Testpakete
1
Woher kam dieser Mann und wie hat er an diese Lösung gedacht? Gib ihm eine Medaille!
0101100101
4
Ich arbeite nicht für mich! :( Bitte schauen Sie sich mein Problem an. Es ist ein wenig anders als deins. Stackoverflow.com/questions/57770464/…
Arsalan Shah
3
Die Einstellung ist Ausführen> Konfigurationen bearbeiten, wenn Windows-Version.
Beatrice Lin
17

Sie müssen "Libusb-Backend verwenden" in den Einstellungen -> Debugger deaktivieren Geben Sie hier die Bildbeschreibung ein

Houssin Boulla
quelle
Nur diese Lösung half - Xubuntu 18.04
Raskilas
Ich kann nicht glauben, dass das funktioniert hat! Android Studio 3.5.1 Android Debug Bridge Version 1.0.41 Version 29.0.5-5949299
Kebab Krabby
1
Funktioniert wie Charme. Ich hatte
monatelang
1
OH MEIN GOTT! Dies hat ein großes Problem gelöst. Ich hatte monatelang mit diesem Problem zu kämpfen. Wow!
Vivek
1
Dies wurde für mich unter OSx 10.15 behoben! Vielen Dank!
Chris.Jenkins
12

Dieses Problem in Android Studio tritt bei Geräten auf, die niedriger als API 26Android 8 sind. Dies wird durch Ersatz von verursacht InstantRun, jetzt bekannt als ApplyChanges .

Es scheint nur zwei Möglichkeiten zu geben, bevor sie es im nächsten Update beheben.

  1. Laufen Sie weiter API>=26.
  2. Nach jeder Änderung der Code-Bearbeitung run configurationwechseln Sie deployvon APKnach App bundleund 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.

Mohax
quelle
1
Ich habe ein Android 9.0-Gerät und habe dieses Problem. Wenn ich jedoch laufende Tests zwischen dem Emulator und dem realen Gerät mische, scheinen App und Tests ziemlich oft ausgeführt zu werden. Ich weiß nicht wirklich warum, aber vielleicht hilft es jemandem.
Adek111
Vielleicht können Sie die App erfolgreich erneut ausführen, API26+wenn Sie auf klicken Apply changes, anstatt rerun? Dies ist eine neue Schaltfläche rechts von rerun.
Mohax
6

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
    }
    ...
}
Sancho
quelle
4

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

Aktivieren Sie Fallback für Änderungen übernehmen übernehmen

Nachdem Sie entweder auf Änderungen übernehmen und Aktivität neu starten oder auf Codeänderungen anwenden geklickt haben, erstellt Android Studio eine neue APK und bestimmt, ob die Änderungen angewendet werden können. Wenn die Änderungen nicht angewendet werden können und das Anwenden von Änderungen fehlschlagen würde, werden Sie von Android Studio aufgefordert, das Symbol "Ausführen" Ihrer App stattdessen erneut auszuführen. Wenn Sie jedoch nicht jedes Mal dazu aufgefordert werden möchten, können Sie Android Studio so konfigurieren, dass Ihre App automatisch erneut ausgeführt wird, wenn Änderungen nicht übernommen werden können.

Gehen Sie folgendermaßen vor, um dieses Verhalten zu aktivieren:

  1. Öffnen Sie das Dialogfeld "Einstellungen" oder "Einstellungen":
    • Wählen Sie unter Windows oder Linux in der Menüleiste Datei> Einstellungen .
    • Wählen Sie unter macOS in der Menüleiste Android Studio> Einstellungen aus.
  2. Navigieren Sie zu Erstellen, Ausführen, Bereitstellen> Bereitstellen .
  3. Aktivieren Sie die Kontrollkästchen , um das automatische Ausführen eines Fallbacks für eine der Aktionen zum Übernehmen von Änderungen zu aktivieren.
  4. OK klicken.

Screenshot läuft unter Linux

M. Baja Aksha
quelle
1
Ich habe das Betriebssystem auf Linux geändert und AS 3.5 funktioniert dort einwandfrei.
Taseer
4

Es gibt ein Problem mit Lineage OS, wie vom Google-Team unter https://issuetracker.google.com/issues/139782879 angegeben :

Wir können es auf einem Gerät mit LineageOS reproduzieren. Ein Systemaufruf, den wir für DeltaInstall verwenden, wird nicht vollständig unterstützt.

Es gibt keine offensichtliche Lösung (außer das Entfernen des APK aus dem Build-Ordner oder das Deinstallieren der Anwendung).

Wir sollten eine Problemumgehung dafür haben, aber so wie es jetzt aussieht, wird LineageOS nicht über DeltaInstall verfügen und muss immer eine langsamere vollständige Installation durchführen.

Wenn Sie zu NothingOP 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.

Danke für die Rückmeldung. Dies sollte in den neuesten Versionen von 3.6 behoben sein.

Pedro Oliveira
quelle
3

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"

Geben Sie hier die Bildbeschreibung ein

Suyog Dorlikar
quelle
3

Build> Clean Projekt seine Arbeit ist für mich. Bevor Sie eine andere Einstellung ändern, versuchen Sie dies zuerst.

Viel Spaß beim Codieren :)

happy_Coding
quelle
2

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

Chooven
quelle
1

Das Löschen / Deinstallieren der App vom Gerät hat das Problem für mich behoben.

Alex Sag
quelle
Ich habe die App vom API 29-Emulator deinstalliert und es hat geholfen.
CoolMind
1

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.gradleDatei 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
shizhen
quelle
1

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.

Azamat Mahkamov
quelle
1

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

ch13mob
quelle
1
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.

user9973657
quelle
0

Endlich habe ich die Lösung gefunden

Setzen Sie einfach v2SigningEnabled auf true

 signingConfigs {
    release {
        v2SigningEnabled true
    }
}
yefeng
quelle
0

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 -> Preferenceund deaktivieren Sie Folgendes unter Deployments.

Geben Sie hier die Bildbeschreibung ein

Hier ist das Neue in Android Studio 3.5, das Ihnen hilft, die Funktion besser zu verstehen.

Geben Sie hier die Bildbeschreibung ein

Reaz Murshed
quelle
0

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.

Boris Timofeev
quelle
0

Ich habe die App vom Emulator deinstalliert, ausgeführt und alles wurde wieder normal

Woz
quelle
0

Für mich Aktion minSdkVer = 22, tarSdkVer = 28ausführen Gradle -> app -> Tasks -> build -> clean && cleanBuildCache, Problem gelöst.

Shanksiscool
quelle
0

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.

dcarl661
quelle
0

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

Vivek
quelle
0

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.

BM
quelle
0

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
0

Ausführen -> Konfiguration bearbeiten -> Flags installieren: -r -t -> Übernehmen -> Ok

Savita Sharma
quelle
0

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 -toben genannten Flags

lgallard
quelle
0

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

Android Studio 3.6 Canary

  • Es ist mehr funktionierende Version als 3.5

Aber stiil müssen in Installationsflags hinzugefügt werden -r -t

nicolas asinovich
quelle
Wir müssen auf eine 'stabile' Version 3.6 warten.
Taseer
0

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

Richierich
quelle
0

Hauptlösung

  1. Löschen Sie die App und erstellen Sie sie erneut in Run / Debug Configuration
    • Installationsoptionen -> Aktivieren Sie für alle Benutzer die Option Installieren
  2. Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Debugger > DeaktivierenUse libusb backend


Tipps:

  • Konfiguration ausführen / debuggen -> Startoptionen> Start: Angegebene Aktivität> Wählen Sie eine Aktivität
  • Installieren Sie die App mit einem anderen physischen Gerät, einer anderen Version der IDE oder einem anderen PC
  • Installieren Sie IDE neu und löschen Sie .android
  • Wiederholen Sie den Vorgang mit der Hauptlösung

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

Braian Coronel
quelle
-1

versuche android zu ändern: appComponentFactory=""zu android:appComponentFactory="new", "new"können beliebige wörter sein

sh_ZJ
quelle
-2

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.

Suyog Dorlikar
quelle