Ошибка установки Eclipse: INSTALL_FAILED_UID_CHANGED

У меня проблема с запуском приложения Android из eclipse на реальном устройстве Android

когда я нажимаю "Запустить", просто покажу мне эту ошибку: Ошибка установки: INSTALL_FAILED_UID_CHANGED

Logcat:

[2012-09-09 14:38:26 - SearchApp] Android Launch!
[2012-09-09 14:38:26 - SearchApp] adb is running normally.
[2012-09-09 14:38:26 - SearchApp] Performing com.example.MainActivity activity launch
[2012-09-09 14:38:26 - SearchApp] Automatic Target Mode: using device 'cff192abd7f551f'
[2012-09-09 14:38:26 - SearchApp] Uploading SearchApp.apk onto device 'cff192abd7f551f'
[2012-09-09 14:38:27 - SearchApp] Installing SearchApp.apk...
[2012-09-09 14:38:28 - SearchApp] Installation error: INSTALL_FAILED_UID_CHANGED
[2012-09-09 14:38:28 - SearchApp] Please check logcat output for more details.
[2012-09-09 14:38:28 - SearchApp] Launch canceled!

Ответ 1

Я СОБЫТИЕ РЕШЕНИЯ ДЛЯ INSTALL_FAILED_DEXOPT и INSTALL_FAILED_UID_CHANGED ERROR

После долгих испытаний тщетных трюков, я в конечном итоге нашел основное решение для решения этой липкой проблемы навсегда!

Я думаю, проблема вызвана ошибкой Eclipse!, на самом деле eclipse не может копировать и устанавливать встроенный файл APK только из-за имени строки (описано далее)

Я должен добавить, что, когда вы используете трюки в Интернете, такие как папка с именами пакетов в данных/данных, вы столкнетесь с новой липкой ошибкой " INSTALL_FAILED_DEXOPT"

Итак, посмотрим, как решить INSTALL_FAILED_DEXOPT и INSTALL_FAILED_UID_CHANGED

В моем случае, когда я проверяю log cat, я заметил ниже строки:

09-30 19:03:19.882: I/PackageManager(314): Running dexopt on: com.example.searchapp
09-30 19:03:19.921: E/dalvikvm(6129): Invalid name: 'search_‌country_name'
09-30 19:03:19.921: E/dalvikvm(6129): Trouble with item 226 @ offset 0x2094
09-30 19:03:19.921: E/dalvikvm(6129): Cross-item verify of section type 0004 failed
09-30 19:03:19.921: E/dalvikvm(6129): ERROR: Byte swap + verify failed
09-30 19:03:19.961: E/dalvikvm(6129): Optimization failed
09-30 19:03:19.961: W/installd(144): DexInv: --- END '/data/app/com.example.searchapp-1.apk' --- status=0xff00, process failed
09-30 19:03:19.961: E/installd(144): dexopt failed on '/data/dalvik-cache/[email protected]@[email protected]' res = 65280
09-30 19:03:19.961: W/PackageManager(314): Package couldn't be installed in /data/app/com.example.searchapp-1.apk

Как вы можете видеть, вторая строка: Недопустимое имя: 'search_country_name'

Это одно из моих имен строк в String.xml

Итак, я удаляю эту строку и комментирую все ссылочные коды

Затем я удаляю папку имени пакета в /data/data (если вы используете фактическое устройство, у вас должен быть root-доступ, если вы используете эмулятор, просто протрите данные перед открытием эмулятора или создайте новый AVD)

Теперь проблема решена!

Вы можете легко продолжить кодирование!

Ответ 2

Это решение, наконец, работало для меня без root:

$ platform-tools/adb -d install /path/to/proj/bin/foo.apk
797 KB/s (4872885 bytes in 5.963s)
pkg: /data/local/tmp/foo.apk
Success
$ platform-tools/adb -d uninstall com.example.foo.bar
Success

Я не совсем понимаю, почему это сработало, когда установка из Eclipse не работала для одного и того же APK, но я просто счастлив двигаться дальше...

Ответ 3

Я пробовал все эти ответы но никакого эффекта

удаляем.

решение: просто перезагрузите панель

Ответ 4

Возможно, приложение не удалилось должным образом. Там может быть папка с данными. Поэтому попробуйте удалить папку данных приложения вручную и попробуйте снова установить приложение.

Ответ 5

В качестве альтернативы удалите эмулятор и снова настройте его.

Ответ 6

Может быть любая помощь...

У меня есть корневое устройство для отладки. Иногда я резервирую свои данные приложения из /data/data/my.package, а затем восстанавливает оболочку adb. Перед восстановлением я удаляю папку my.package, восстанавливаю и копирую другие подпапки и файлы. После этого при следующем изменении и запуске проекта из затмения получите сообщение об ошибке INSTALL_FAILED_UID_CHANGED.

Моя ошибка: я не должен был удалять папку my.package. Я должен удалить только все в этой папке, потому что при воссоздании папки я получаю новую папку владельца my.package.

Ответ 7

Для этого есть работа. Если у вас нет корневого устройства, и вы также не можете получить доступ к папке data/data/, а затем просто reset свое устройство. Он удалит все из папки данных, и вы сможете снова установить чистую программу. Единственный недостаток - все будет стерто с вашего телефона.

Ответ 8

У меня была проблема с эмулятором. Я удалил avd и создал новый. Проблема исчезла.

Ответ 9

Существует уже каталог данных с именем пакета, который вы пытаетесь установить с другим назначенным UID. Получите доступ root и попробуйте удалить уже существующий каталог со следующей командой в cmd

  rm -r /data/data/com.your.package

Или попробуйте переименовать пакет приложений, чтобы запустить его на своем устройстве.

Ответ 10

Итак, если вы придумаете это, чтобы найти это, ничто не могло бы сработать для вас. Однако для этого есть легкое решение. Это, очевидно, из-за неправильной деинсталляции (возможно, из-за неправильного подключения кабеля).

РЕШЕНИЕ Скачайте SDMaid из магазина воспроизведения и удалите файлы Corpse (файлы нежелательной почты). Повторно запустить приложение. (Но вам нужно укрепить свое устройство)

Ответ 11

Это решение работало для меня:

  • Поместите APK на карту памяти устройства /sd

  • adb shell pm install -l -r "/sdcard/<apk_filename>.apk"