Paket xyz stimmt nicht überein: 10044 auf der Festplatte, 10045 in den Einstellungen

8

Ich habe eine einfache Anleitung zur Installation eines Android-x86 in einer VM gefunden ( Handbuch ).
Verbindung zu Eclipse und alles funktioniert gut, aber die Installation meiner App auf der VM schlägt mit folgenden Fehlern fehl:

%Vor%

Ich habe den Fehler bei Google gesucht und ein kleines Python-Skript gefunden, um das Problem zu beheben, aber es funktioniert nicht ( Skript ). Nach der Ausführung des Skripts habe ich den gleichen Fehler bekommen.

Ich benutze Android-x86 2.2 generisch, mehr Details finden Sie hier: Release 2.2

Gibt es eine Möglichkeit, das Problem zu beheben?

BEARBEITEN:

Ich habe alle 2.2 Versionen getestet. Nur generische und sparta arbeiten im Allgemeinen, aber niemand akzeptiert meine apk.
Auch mit adb install <packagefile> versucht.

EDIT2:

Ich habe die empfohlenen Tools von @Vlad ausprobiert. Es funktioniert teilweise nach der Unterzeichnung der Apk. Schließlich habe ich die apkTools verwendet und die alten Dateien von apkEdit durch die neuen vom apktool. Aber die Installation mit adb hängt auf mit der Nachricht wartet auf Gerät oder nichts. Wenn ich glaube, Eclipse DDMS die Verbindung zum Gerät wird jedes Mal verloren, wenn ich versuche, die apk zu installieren.
Hier ist der Fehler, wenn ich versuche, die normale apk: Failure [INSTALL_FAILED_INVALID_APK]

zu installieren     
CSchulz 21.06.2011, 20:45
quelle

3 Antworten

1

Fehler Package xyz has mismatched uid: 10044 on disk, 10045 in settings verursacht durch den vorhandenen Ordner /data/data/xyz/ .

In diesem Nachrichtenordner existiert und hat einen anderen Besitzer (10044) als jetzt installiert (10045). Es wird durch vorherige unsaubere Installation verursacht.

Zum Beispiel ist die vorherige Installation mit einigen Fehlern fehlgeschlagen und erstellte Ordner werden nicht gelöscht.

Weil im Ordner können Daten von anderen App Android kann nicht zulassen, verwenden Sie es. PackageManager versuche es auf verschiedene Arten zu beheben, aber wenn dies nicht möglich ist - erhalte App verschiedene dir und zeige diese Nachricht.

Bessere Lösung - App installieren und säubern entfernen Sie es. Danach installieren Sie es erneut.

Eine andere Lösung - entfernen Sie den Ordner /data/data/xyz/ in mancher Hinsicht. Vielleicht brauchst du root dafür.

Code von PackageManager (Kommentare können sehr hilfreich sein):

%Vor%     
Enyby 14.05.2016, 21:34
quelle
1

Ihre Anwendung scheint nativen Code zu verwenden. Verwenden Sie NDK? Ein Weg zu überprüfen ist zu verwenden     "apktool dump badging"

siehe Ссылка

Suchen Sie nach etwas wie     eigener Code: 'armeabi' in der Ausgabe

    
Vlad 23.06.2011 00:54
quelle
0
  

Das Problem hatte mit einem Programm namens "dexopt" zu tun, das bestimmt   ein Puffer fester Größe namens "LinearAlloc" von Anwendungen, die auf einem installiert sind   bestimmtes Gerät. Während die Puffergröße für neuere 8 oder 16 MB groß ist   Android-Versionen wie Ice Cream Sandwich und Jelly Bean sind nur 5 MB groß   in den älteren Versionen.

Wenn Sie die apk signieren, führen Sie wahrscheinlich proguard-Schritte aus, die nicht referenzierte Codeteile (Klassen, Methoden, Felder usw.) entfernen. Sie übergeben also diesen Fehler in Bezug auf die Puffergröße.

Aber proguard ist vielleicht nicht immer eine Lösung, Sie haben immer noch die Möglichkeit, die Puffergröße zu überschreiten.

Facebook hat eine Lösung dafür: "Wir brechen unsere App in mehrere Dex-Dateien auf". Siehe: Ссылка

    
Devrim 31.03.2014 12:32
quelle