528 Stimmen

Fehler 'App nicht installiert' auf Android

Ich habe ein Programm, das im Android-Emulator funktioniert. Hin und wieder habe ich eine signierte .apk erstellt und sie auf mein HTC Desire exportiert, um sie zu testen. Es hat alles gut funktioniert.

Bei meiner letzten exportierten .apk erhalte ich die Fehlermeldung "App nicht installiert", wenn ich versuche, die .apk zu installieren. Auf den Emulatoren läuft es gut.

Da ich hauptsächlich auf den Emulatoren getestet und nur ab und zu auf ein echtes Telefon exportiert habe, bin ich mir nicht sicher, wann das passiert ist. Was ist die wahrscheinliche Ursache dafür, dass es auf einem physischen Telefon nicht installiert werden kann, aber in den Emulatoren problemlos läuft?

Ich habe versucht, das Telefon neu zu starten und die vorhandene .apk zu entfernen, aber das hat den Fehler nicht behoben.

6 Stimmen

Wenn Sie sagen, Sie hätten die vorhandene .apk-Datei entfernt, meinen Sie damit, dass Sie die Anwendung vom Telefon deinstalliert haben? Wenn nicht, deinstallieren Sie die Anwendung, bevor Sie versuchen, sie erneut zu installieren.

10 Stimmen

Was TomS sagte, laufen adb uninstall your.package.name und dann adb install /path/to.apk . Ich wüsste nicht, warum das nicht funktionieren sollte. Haben Sie irgendetwas an der Unterschriftsprozedur geändert?

2 Stimmen

Haben Sie versucht, es direkt von Eclipse in dem an den Computer angeschlossenen Gerät zu debuggen, um zu sehen, ob das Protokoll etwas mehr sagt?

4voto

SMGhost Punkte 3523

Mein Problem war ähnlich wie das von @Lunatikzx. Wegen eines falschen Berechtigungs-Tags, das als Attribut zur Anwendung geschrieben wurde:

<application
    android:permission="android.permission.WRITE_EXTERNAL_STORAGE"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:testOnly="false"
    android:debuggable="true">

Ich habe das Problem gelöst, indem ich das Erlaubnis-Tag in ein separates Tag wie dieses geändert habe:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4voto

Gabriel Sanmartin Punkte 3814

In meinem Fall lag es daran, dass ich die Alphaversion der Support-Bibliothek 28 verwendete. Es sieht so aus, als ob Google diese Vorabversionen als "testOnly" kennzeichnet. Wenn Sie wirklich so freigeben wollen (z. B. wenn Sie eine interne Beta-Version veröffentlichen wollen, wie ich es getan habe), können Sie diese Zeile zu Ihrer gradle.properties-Datei hinzufügen:

android.injected.testOnly=false

3voto

heavyauto Punkte 131

In meinem Fall liegt es daran, dass Android Studio 3.0 die android:testOnly="true" auf APKs, die aus der release Bauvariante.

https://commonsware.com/blog/2017/10/31/Android-studio-3p0-flag-test-only.html

Also laufen ./gradlew assembleRelease mein Problem lösen

3voto

Bobs Punkte 22339

Dieses Problem kann auch auftreten, weil der Hersteller Ihres Geräts die kommerziellen Google-Anwendungen wie Play Store, YouTube, Google Maps usw. nicht lizenziert hat. Folgen Sie diese Antwort um das Problem zu lösen.

3voto

Noby Punkte 6332

Überprüfen Sie dies mit der Android-Version.

Wenn Sie nicht marktübliche Anwendungen und inkompatible Versionen installieren, erhalten Sie diese Fehlermeldung.

Beispiel: Die Anwendung ist auf 2.3.4 ausgerichtet. Ihr Gerät ist 2.2 Dann erhalten Sie diesen Fehler.

0 Stimmen

Wo in den gradle-Konfigurationsdateien sehe ich die Zielversion von Android? Ich sehe sie weder in der build.gradle noch in der Android-Manifestdatei. Es sei denn, compileSdkVersion (Wert 23) oder minSdkVersion (16) oder targetSdkVersion (22) weisen irgendwie auf die gewünschte Einstellung hin. Meine Galaxie läuft Android 7.0 (und fragt zu aktualisieren, aber ich erlaube es nicht, noch). Ich verwende nicht Android Studio, um meine React-Native-App zu erstellen, aber eher gradlew assembleRelease

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X