2014-05-02 13 views
18

Mam pewne problemy na urządzeniach Android 2.3.X dla jednej z moich aplikacji (nazwa pakietu to com.netbiscuits.kicker). Jednak nie mogę zainstalować pliku APK. Próbowałem zainstalować go bezpośrednio z zaćmienia (debug kluczy) z następującym komunikatem w LogCat:Pakiet ma niedopasowany numer UID: 10124 na dysku, 10134 w ustawieniach

05-02 09:29:03.671: D/PackageManager(279): Scanning package com.netbiscuits.kicker 
05-02 09:29:03.671: E/PackageManager(279): Package com.netbiscuits.kicker has mismatched uid: 10124 on disk, 10134 in settings 
05-02 09:29:03.671: I/PackageManager(279): Linking native library dir for /data/app/com.netbiscuits.kicker-1.apk 
05-02 09:29:03.681: D/installd(126): DexInv: --- BEGIN '/data/app/com.netbiscuits.kicker-1.apk' --- 
05-02 09:29:06.641: D/dalvikvm(2530): creating instr width table 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/Decoder;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/DecoderException;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/Encoder;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/EncoderException;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringEncoderComparator;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/DoubleMetaphone$DoubleMetaphoneResult;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/SoundexUtils;' has an earlier definition; blocking out 
05-02 09:29:07.451: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/RFC1522Codec;' has an earlier definition; blocking out 
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/BinaryDecoder;' has an earlier definition; blocking out 
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/BinaryEncoder;' has an earlier definition; blocking out 
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringDecoder;' has an earlier definition; blocking out 
05-02 09:29:07.591: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/StringEncoder;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/BinaryCodec;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/Hex;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/DoubleMetaphone;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/Metaphone;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/RefinedSoundex;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/language/Soundex;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/BCodec;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/QCodec;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/QuotedPrintableCodec;' has an earlier definition; blocking out 
05-02 09:29:07.641: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/net/URLCodec;' has an earlier definition; blocking out 
05-02 09:29:07.671: D/dalvikvm(2530): DexOpt: 'Lorg/apache/commons/codec/binary/Base64;' has an earlier definition; blocking out 
05-02 09:29:07.751: D/dalvikvm(2530): DexOpt: couldn't find field Landroid/graphics/BitmapFactory$Options;.inMutable 
05-02 09:29:07.971: I/dalvikvm(2530): DexOpt: illegal method access (call Lcom/google/ads/AdRequest;.<init>()V from Lcom/adtech/mobilesdk/publisher/mediation/admob/AdmobConfiguration;) 
05-02 09:29:08.271: D/dalvikvm(2530): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp 
05-02 09:29:08.721: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Hex;' 
05-02 09:29:08.801: D/dalvikvm(2530): DexOpt: couldn't find static field 
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Decoder;': multiple definitions 
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/DecoderException;': multiple definitions 
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Encoder;': multiple definitions 
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/EncoderException;': multiple definitions 
05-02 09:29:08.921: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringEncoderComparator;': multiple definitions 
05-02 09:29:08.921: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Hex;' 
05-02 09:29:08.931: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/language/DoubleMetaphone$DoubleMetaphoneResult;': multiple definitions 
05-02 09:29:08.931: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/language/SoundexUtils;': multiple definitions 
05-02 09:29:08.941: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/net/RFC1522Codec;': multiple definitions 
05-02 09:29:08.941: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/DecoderException;' 
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/BinaryDecoder;': multiple definitions 
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/BinaryEncoder;': multiple definitions 
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringDecoder;': multiple definitions 
05-02 09:29:10.001: D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/StringEncoder;': multiple definitions 
05-02 09:29:10.001: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Base64;' 
05-02 09:29:10.001: I/dalvikvm(2530): DexOpt: not resolving ambiguous class 'Lorg/apache/commons/codec/binary/Base64;' 
05-02 09:29:10.341: E/dalvikvm(2530): LinearAlloc exceeded capacity (5242880), last=728 
05-02 09:29:10.341: E/dalvikvm(2530): VM aborting 
05-02 09:29:10.448: I/DEBUG(120): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
05-02 09:29:10.448: I/DEBUG(120): Build fingerprint: 'SEMC/LT15i_1247-1044/LT15i:2.3.4/4.0.2.A.0.69/uv_v3w:user/release-keys' 
05-02 09:29:10.448: I/DEBUG(120): pid: 2530, tid: 2530 >>> /system/bin/dexopt <<< 
05-02 09:29:10.448: I/DEBUG(120): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d 
05-02 09:29:10.448: I/DEBUG(120): r0 fffffe84 r1 deadd00d r2 00000026 r3 00000000 
05-02 09:29:10.448: I/DEBUG(120): r4 6ca9f600 r5 004ffee4 r6 005001c4 r7 0001a82c 
05-02 09:29:10.448: I/DEBUG(120): r8 000002d8 r9 00000000 10 0000000e fp 000560a8 
05-02 09:29:10.448: I/DEBUG(120): ip 6ca9f70c sp 7eea9740 lr 6fd192b9 pc 6ca402c8 cpsr 20000030 
05-02 09:29:10.448: I/DEBUG(120): d0 6472656767756265 d1 746963617061636e 
05-02 09:29:10.448: I/DEBUG(120): d2 0000000600000067 d3 2ab070600000000a 
05-02 09:29:10.448: I/DEBUG(120): d4 2acb49782ab07060 d5 0000000800000002 
05-02 09:29:10.448: I/DEBUG(120): d6 2ab088302ac5d248 d7 0000000c2ac880f0 
05-02 09:29:10.448: I/DEBUG(120): d8 0000020c0db232fe d9 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d10 0000000000000000 d11 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d12 0000000000000000 d13 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d14 0000000000000000 d15 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d16 0000000000000000 d17 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d18 0000000000000000 d19 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d20 0000000000000000 d21 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d22 0000000000000000 d23 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d24 0000000000000000 d25 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d26 0000000000000000 d27 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d28 0000000000000000 d29 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): d30 0000000000000000 d31 0000000000000000 
05-02 09:29:10.448: I/DEBUG(120): scr 00000000 
05-02 09:29:10.471: I/DEBUG(120):   #00 pc 000402c8 /system/lib/libdvm.so 
05-02 09:29:10.471: I/DEBUG(120):   #01 pc 0004846e /system/lib/libdvm.so 
05-02 09:29:10.471: I/DEBUG(120):   #02 pc 00064a84 /system/lib/libdvm.so 
05-02 09:29:10.471: I/DEBUG(120):   #03 pc 00064e90 /system/lib/libdvm.so 
05-02 09:29:10.471: I/DEBUG(120):   #04 pc 000656bc /system/lib/libdvm.so 
05-02 09:29:10.471: I/DEBUG(120):   #05 pc 000658fe /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #06 pc 0006513e /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #07 pc 0005712c /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #08 pc 0005349a /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #09 pc 000553c2 /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #10 pc 000555fe /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #11 pc 00056fd0 /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #12 pc 00057022 /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #13 pc 00055e4e /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #14 pc 00055efc /system/lib/libdvm.so 
05-02 09:29:10.481: I/DEBUG(120):   #15 pc 00056000 /system/lib/libdvm.so 
05-02 09:29:10.491: I/DEBUG(120): code around pc: 
05-02 09:29:10.491: I/DEBUG(120): 6ca402a8 447a4479 f7d14c0b 2000e982 ea86f7d1 
05-02 09:29:10.491: I/DEBUG(120): 6ca402b8 447c4809 6bdb5823 4798b103 22264902 
05-02 09:29:10.491: I/DEBUG(120): 6ca402c8 f7d1700a bf00eaee deadd00d 00043947 
05-02 09:29:10.491: I/DEBUG(120): 6ca402d8 00045505 0005f342 fffffe84 4b09b40e 
05-02 09:29:10.491: I/DEBUG(120): 6ca402e8 4c09b517 aa05447b f852591b 6b5b1b04 
05-02 09:29:10.491: I/DEBUG(120): code around lr: 
05-02 09:29:10.491: I/DEBUG(120): 6fd19298 4a0e4b0d e92d447b 589c41f0 26004680 
05-02 09:29:10.491: I/DEBUG(120): 6fd192a8 686768a5 f9b5e006 b113300c 47c04628 
05-02 09:29:10.491: I/DEBUG(120): 6fd192b8 35544306 37fff117 6824d5f5 d1ef2c00 
05-02 09:29:10.491: I/DEBUG(120): 6fd192c8 e8bd4630 bf0081f0 00028284 ffffff88 
05-02 09:29:10.491: I/DEBUG(120): 6fd192d8 b086b570 f602fb01 9004460c a804a901 
05-02 09:29:10.491: I/DEBUG(120): stack: 
05-02 09:29:10.491: I/DEBUG(120):  7eea9700 2ab06280 
05-02 09:29:10.491: I/DEBUG(120):  7eea9704 2acc3620 
05-02 09:29:10.491: I/DEBUG(120):  7eea9708 6caa51a0 
05-02 09:29:10.491: I/DEBUG(120):  7eea970c 6ca9f600 
05-02 09:29:10.491: I/DEBUG(120):  7eea9710 6fd4272c 
05-02 09:29:10.491: I/DEBUG(120):  7eea9714 6fd426d8 
05-02 09:29:10.491: I/DEBUG(120):  7eea9718 00000000 
05-02 09:29:10.491: I/DEBUG(120):  7eea971c 6fd192b9 /system/lib/libc.so 
05-02 09:29:10.491: I/DEBUG(120):  7eea9720 0005f342 
05-02 09:29:10.491: I/DEBUG(120):  7eea9724 004ffee4 
05-02 09:29:10.491: I/DEBUG(120):  7eea9728 005001c4 
05-02 09:29:10.491: I/DEBUG(120):  7eea972c 0001a82c 
05-02 09:29:10.491: I/DEBUG(120):  7eea9730 000002d8 
05-02 09:29:10.491: I/DEBUG(120):  7eea9734 6fd183b1 /system/lib/libc.so 
05-02 09:29:10.491: I/DEBUG(120):  7eea9738 df002777 
05-02 09:29:10.491: I/DEBUG(120):  7eea973c e3a070ad 
05-02 09:29:10.491: I/DEBUG(120): #00 7eea9740 0001a828 
05-02 09:29:10.491: I/DEBUG(120):  7eea9744 6ca48473 /system/lib/libdvm.so 
05-02 09:29:10.491: I/DEBUG(120): #01 7eea9748 000002d8 
05-02 09:29:10.491: I/DEBUG(120):  7eea974c 000002d8 
05-02 09:29:10.491: I/DEBUG(120):  7eea9750 2ce60443 
05-02 09:29:10.491: I/DEBUG(120):  7eea9754 2acc3620 
05-02 09:29:10.491: I/DEBUG(120):  7eea9758 000560a8 
05-02 09:29:10.491: I/DEBUG(120):  7eea975c 2c8a5190 
05-02 09:29:10.491: I/DEBUG(120):  7eea9760 7eea97d8 
05-02 09:29:10.501: I/DEBUG(120):  7eea9764 00000000 
05-02 09:29:10.501: I/DEBUG(120):  7eea9768 0000000e 
05-02 09:29:10.501: I/DEBUG(120):  7eea976c 6ca64a89 /system/lib/libdvm.so 
05-02 09:29:10.531: W/installd(126): DexInv: --- END '/data/app/com.netbiscuits.kicker-1.apk' --- status=0x000b, process failed 
05-02 09:29:10.531: E/installd(126): dexopt failed on '/data/dalvik-cache/[email protected]@[email protected]' res = 11 
05-02 09:29:10.541: W/PackageManager(279): Package couldn't be installed in /data/app/com.netbiscuits.kicker-1.apk 
05-02 09:29:10.541: I/BootReceiver(279): Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE) 
05-02 09:29:10.641: D/dalvikvm(279): GC_EXPLICIT freed 1059K, 34% free 10358K/15623K, external 4874K/6087K, paused 90ms 
05-02 09:29:10.671: D/AndroidRuntime(2519): Shutting down VM 
05-02 09:29:10.671: D/dalvikvm(2519): GC_CONCURRENT freed 215K, 71% free 304K/1024K, external 0K/0K, paused 0ms+1ms 
05-02 09:29:10.671: D/dalvikvm(2519): Debugger has detached; object registry had 1 entries 
05-02 09:29:11.411: I/iddd-events(129): Event com.sonyericsson.idd.probe.android.devicemonitor::ApplicationCrash was discarded since it was not active. 

Próbowałem również zainstalować podpisany APK bezpośrednio z Google Play Store. To nie powiodło się z komunikatem o błędzie: "Plik pakietu jest nieprawidłowy".

Problem pojawia się tylko na kilku urządzeniach z Androidem 2.3.x i nie mam absolutnie pojęcia dlaczego. Nie używam natywnego kodu NDK, a ja już sprawdziłem, czy biblioteka zawiera gdzieś apache commons, ale nie znalazłem nic nienormalnego.

Jakieś sugestie?

+0

Czy dodanie lub zmiana 'android: sharedUserId' po zwolnieniu swoją aplikację? – CommonsWare

+0

Nie ustawiłem tej flagi w moim manifeście Android. Pracuję jednak nad aktualizacją (budowanie od zera) już istniejącej (i opublikowanej w sklepie Google Play) i nie mam dostępu do "starego" Manifestu Androida. Czy uważasz, że to może być problem? – sockeqwe

+0

Cóż, inny "android: sharedUserId' zdecydowanie daje inny UID. Jeśli oryginalna aplikacja ma ustawiony "android: sharedUserId", musisz dopasować jej wartość. Może być coś innego, co powoduje twoją trudność - to tylko jeden scenariusz, który wpadł mi do głowy, gdy zobaczyłem twoje pytanie. – CommonsWare

Odpowiedz

0

Problem polegał na tym, że wersja Apache commons, którą określiłem dla tego projektu (maven) była inna (nowsza) od tej, która jest już zintegrowana z Androidem 2.x. To spowodowało te błędy:

D/dalvikvm(2530): DexOpt: not verifying 'Lorg/apache/commons/codec/Decoder;': multiple definitions 

Usunąłem zależność od Apache i zastąpiłem ją własną implementacją. Chyba można również zapakować nowsze Apache Commons zajęcia do swojego pakietu aplikacji lub próbować bawić się z zakresem przewidzianym ...

7

Twój problem polega na tym, że API zdefiniowany w ustawieniach projektu musi być kompatybilny, aby poprawnie współpracować z wersją telefonu, która musi być zgodna lub obsługiwana przez wersję kompilacji APK, z której aktualnie korzystasz. Sprawdź plik AndroidManifest.xml i zawarte ustawienia .jar w celu uzyskania zgodności interfejsu API. Dobrym sposobem na bezpieczne i unikanie tego rodzaju bólu głowy jest opublikowanie wielu APKs.

enter image description here

Gdy użytkownik zdecyduje się opublikować wiele plików APK, prawdopodobnie trzeba utworzyć osobne projekty Android dla każdego pliku APK zamierzasz opublikować, aby można było odpowiednio rozwijać je oddzielnie. Możesz to zrobić, po prostu powtarzasz istniejący projekt i nadajesz mu nową nazwę. Alternatywnie możesz użyć systemu kompilacji, który może generować różne zasoby - na przykład tekstury - w oparciu o konfigurację kompilacji.

enter image description here

Jednym ze sposobów uniknięcia powielania dużych porcji kodu aplikacji jest użycie library projektu. Numer library project zawiera wspólny kod i zasoby, które można uwzględnić w rzeczywistych projektach aplikacji.

http://www.technotalkative.com/wp-content/uploads/2013/06/volley-library.png

Przy tworzeniu wielu projektów dla tej samej aplikacji, jest to dobra praktyka, aby zidentyfikować każdy z nazwą, która wskazuje na ograniczenia urządzenie może być umieszczone na APK, dzięki czemu można łatwo zidentyfikować. Na przykład "myAPP08" może być dobrą nazwą dla aplikacji zaprojektowanej dla API poziomu 8 i wyżej.

enter image description here

aktywację wielu APK w konsoli programisty Android Market, zapewnić sobie zapewnić APK wersje pasujące do Android wersje masz na myśli. Korzystanie z projektu bibliotecznego to dodatkowy krok, który pomaga zapewnić wysoką jakość i uniknąć problemów związanych z kompatybilnością podczas przygotowywania do aplikacji. Im bardziej ostrożny i ostroŜny będzie zwracanie uwagi na details, tym lepiej.

enter image description here

W końcu, co najważniejsze jest to, że APK będą niezawodne i płynnie na większej liczbie różnych urządzeń.

8

definicja Problem

Podczas standardowej instalacji, program o nazwie „dexopt” biegnie do przygotować aplikację do konkretnego telefonu to jest zainstalowany. Dexopt używa bufora o stałym rozmiarze (zwanego "LinearAlloc") do przechowuje informacje o wszystkich metodach w Twojej aplikacji. Ostatnie wersje Androida z wersji używają bufora o pojemności 8 lub 16 MB, ale Froyo i Gingerbread (wersje 2.2 i 2.3) mają tylko 5 MB. Ponieważ starsze wersje Androida z mają względnie mały bufor, nasz duży numer metod przekraczał rozmiar bufora i powodował awarię programu dexopt.

This is the bug for your issue

Solutions:

  1. Proguard: Proguard usuwa bez odniesień klas/metod z aplikacji. W ten sposób zmniejsza się rozmiar pliku deks w aplikacji. (Mam rozwiązać mój problem z PROGUARD)
  2. Dex Multiple Files: Splitu swoją aplikację na wielu plikach Dex. Facebook ma a solution for this. Przeczytaj także ten numer link, aby zarządzać wieloma plikami dex.
+0

Sprawdzę rozwiązanie proguard – sockeqwe

0

Błąd Package has mismatched uid: 10124 on disk, 10134 in settings spowodowane istnieć folderu /data/data/xyz/ gdzie xyz to nazwa aplikacji pakietu.

W tym folderze wiadomości istnieje i ma już innego właściciela (10124) od teraz zainstalowany (10134). Jest to spowodowane poprzednią nieczystą instalacją.

Na przykład poprzednia instalacja nie powiodła się z pewnymi błędami i nie usuwa utworzonych folderów.

Ponieważ w folderze mogą znajdować się dane z innej aplikacji, Android nie może jej użyć. PackageManager spróbuj naprawić to na różne sposoby, ale jeśli nie możesz tego zrobić - otrzymasz inny katalog aplikacji i wyświetlisz tę wiadomość.

Lepsze rozwiązanie - zainstaluj aplikację i wyczyść ją. Następnie zainstaluj ponownie.

Innym rozwiązaniem - usunięcie folderu /data/data/xyz/ w pewien sposób. Być może potrzebujesz do tego root'a.

Kod z PackageManager (komentarze mogą być bardzo pomocne):

  // This is a normal package, need to make its data directory. 
     dataPath = getDataPathForPackage(pkg.packageName, 0); 

     boolean uidError = false; 

     if (dataPath.exists()) { 
      // XXX should really do this check for each user. 
      mOutPermissions[1] = 0; 
      FileUtils.getPermissions(dataPath.getPath(), mOutPermissions); 

      // If we have mismatched owners for the data path, we have a problem. 
      if (mOutPermissions[1] != pkg.applicationInfo.uid) { 
       boolean recovered = false; 
       if (mOutPermissions[1] == 0) { 
        // The directory somehow became owned by root. Wow. 
        // This is probably because the system was stopped while 
        // installd was in the middle of messing with its libs 
        // directory. Ask installd to fix that. 
        int ret = mInstaller.fixUid(pkgName, pkg.applicationInfo.uid, 
          pkg.applicationInfo.uid); 
        if (ret >= 0) { 
         recovered = true; 
         String msg = "Package " + pkg.packageName 
           + " unexpectedly changed to uid 0; recovered to " + 
           + pkg.applicationInfo.uid; 
         reportSettingsProblem(Log.WARN, msg); 
        } 
       } 
       if (!recovered && ((parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0 
         || (scanMode&SCAN_BOOTING) != 0)) { 
        // If this is a system app, we can at least delete its 
        // current data so the application will still work. 
        int ret = mInstaller.remove(pkgName, 0); 
        if (ret >= 0) { 
         // TODO: Kill the processes first 
         // Remove the data directories for all users 
         sUserManager.removePackageForAllUsers(pkgName); 
         // Old data gone! 
         String prefix = (parseFlags&PackageParser.PARSE_IS_SYSTEM) != 0 
           ? "System package " : "Third party package "; 
         String msg = prefix + pkg.packageName 
           + " has changed from uid: " 
           + mOutPermissions[1] + " to " 
           + pkg.applicationInfo.uid + "; old data erased"; 
         reportSettingsProblem(Log.WARN, msg); 
         recovered = true; 

         // And now re-install the app. 
         ret = mInstaller.install(pkgName, pkg.applicationInfo.uid, 
           pkg.applicationInfo.uid); 
         if (ret == -1) { 
          // Ack should not happen! 
          msg = prefix + pkg.packageName 
            + " could not have data directory re-created after delete."; 
          reportSettingsProblem(Log.WARN, msg); 
          mLastScanError = PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE; 
          return null; 
         } 
         // Create data directories for all users 
         sUserManager.installPackageForAllUsers(pkgName, 
           pkg.applicationInfo.uid); 
        } 
        if (!recovered) { 
         mHasSystemUidErrors = true; 
        } 
       } else if (!recovered) { 
        // If we allow this install to proceed, we will be broken. 
        // Abort, abort! 
        mLastScanError = PackageManager.INSTALL_FAILED_UID_CHANGED; 
        return null; 
       } 
       if (!recovered) { 
        pkg.applicationInfo.dataDir = "/mismatched_uid/settings_" 
         + pkg.applicationInfo.uid + "/fs_" 
         + mOutPermissions[1]; 
        pkg.applicationInfo.nativeLibraryDir = pkg.applicationInfo.dataDir; 
        String msg = "Package " + pkg.packageName 
          + " has mismatched uid: " 
          + mOutPermissions[1] + " on disk, " 
          + pkg.applicationInfo.uid + " in settings"; 
        // writer 
        synchronized (mPackages) { 
         mSettings.mReadMessages.append(msg); 
         mSettings.mReadMessages.append('\n'); 
         uidError = true; 
         if (!pkgSetting.uidError) { 
          reportSettingsProblem(Log.ERROR, msg); 
         } 
        } 
       } 
      } 
      pkg.applicationInfo.dataDir = dataPath.getPath();