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?

3voto

Öffnen Sie AndroidMainfest und fügen Sie verionCode und versionName in das Application-Tag ein und stellen Sie sicher, dass debug-fähig gleich false ist:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="...">

<application
    ...
    android:debuggable="false"
    android:versionCode="1"
    android:versionName="1.0"
    tools:ignore="HardcodedDebugMode">
    ...
</application>

dann öffnen Sie build.gradle (module:app) stellen Sie sicher, verionCode, versionName beendet und minsdk <= Ihre mobile sdk:

defaultConfig {
    ...
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
   ...
}

Quellen zu prüfen: https://developer.Android.com/studio/publish/

& https://developer.Android.com/studio/publish/preparing

& https://developer.Android.com/studio/publish/versioning

und https://developer.Android.com/studio/publish/app-signing

3voto

joepadz Punkte 81

Ich bin auch auf dieses Problem gestoßen. Versuchen Sie bitte diese Lösung. Vergewissern Sie sich, dass der Paketname Ihres Projekts ein anderer ist als der Ihres vorherigen Projekts, das bereits auf Ihrem Mobiltelefon installiert war. Ich denke, dass es zu Konflikten bei den Namen kommt. Bei mir funktioniert es.

2 Stimmen

Das funktioniert zwar, ist aber nicht die beste Lösung, da Sie am Ende Millionen von Anwendungen installiert haben werden. Siehe einige der anderen Antworten oben.

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

TalkLittle Punkte 8643

Dieses Problem kann auch auftreten, wenn ein Widget für den Startbildschirm erstellt wird und in der XML-Datei des Widgets eine falsche Aktivität angegeben ist. android:configure Eigentum.

3voto

abbood Punkte 22135

Bei mir war die Ursache, dass ich mehrere Builds mit verschiedenen Build-Varianten auf demselben Telefon hatte:

enter image description here

Einige dieser Gebäude wurden nämlich von ich Eine andere wurde mir von einem anderen Entwickler geschickt. Der Versuch, die Entwickler zu installieren, während ich andere Builds (von mir erstellt) hatte, verursachte den oben genannten Fehler.

Die Lösung war also einfach: Löschen alle die Builds auf meinem Telefon (unabhängig von der Build-Variante).. dann installieren Sie die apk von meinem Peer gesendet.. und es funktionierte wie ein Charme

0 Stimmen

Hatte das gleiche Problem, ich schätze, die Lösung ist, Builds immer zu signieren, wenn man Flavors verwendet

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