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

Я проверил все решения, комментарии и ответы по всем другим вопросам в StackOverflow.

Я выполнял, компилировал и отлаживал свое приложение в течение нескольких месяцев. Но внезапно это сообщение появилось в моем Eclipse при использовании моего Nexus, чтобы играть с ним.

MOBILE:

  • У меня нет корня!!! (Это Nexus, и у меня нет корня, и все ответы в других вопросах Stackoverflow требуют выполнения root)
  • Приложение удалено, его нет в "Приложениях"
  • Поскольку у меня нет доступа root, я не могу получить доступ к папке /data/data,//​​data/local или/data​​li >
  • Я знаю, что проблема будет решена, сбросив телефон до настроек factory, но, искренне, я не могу.

ECLIPSE:

  • Я много раз очищал проект, перезапускал Eclipse и даже обновлял его.
  • Я не могу изменить название проекта (как предлагает одно из решений), так как это проект длительный, и я не могу его изменить.
  • Консоль говорит:

    • Ошибка установки: INSTALL_FAILED_UID_CHANGED
    • Пожалуйста, проверьте вывод logcat для получения более подробной информации.
    • Запуск отменен!
  • Logcat говорит:

    • 01-05 12: 18: 19.265: W/ActivityManager (761): контент-провайдер не найден для отзыва разрешения: file:///data/local/tmp/MyApp.apk
    • 01-05 12: 18: 20.855: W/PackageManager (761): Пакет не может быть установлен в /data/app/com.myapp-1.apk
  • Я могу установить, удалить другие APK/приложения без каких-либо проблем. Так что это не о разрешениях в папке/подпапках данных

CONSOLE:

  • Если я попытаюсь удалить (с -d или любым другим параметром) приложение, оно говорит: "Сбой" (поскольку adb не находит приложение в телефоне)

Итак, я не отлаживаю виртуальную машину/эмулятор. У меня есть Nexus без корня без каких-либо следов приложения, и я не могу создать приложение из Eclipse на устройство.

Спасибо

Ответ 1

У меня была такая же проблема в моем ненастроенном Nexus 5. Мне удалось решить его без доступа root и Factory reset.

Для этого устройства мне удалось решить его, перейдя в Settings -> Storage -> Misc и попробуйте удалить любые файлы, связанные с неисправным приложением (в моем случае .apk, который был перенесен из Android Studio и файла .db). Я также нажал Cached data, чтобы стереть кеш для всех приложений.

Я точно не знаю, какая из двух вещей вызвала решение. Вероятно, вы захотите попытаться удалить некоторые файлы в Misc перед тем, как стереть кешированные данные, так как кажется, что он не является излишним.

Похоже, что были некоторые оставшиеся файлы из предыдущей установки, которые не были удалены с удалением (возможно, проблема в системе установки Android). Эти файлы недоступны без доступа root, так как они находятся в папке /data/local/. По-видимому, инструменты хранения для Nexus 5 имеют разрешение на удаление файлов в этой папке.

Я не знаю, имеют ли другие устройства аналогичный набор средств хранения.

Ответ 2

Это может показаться странным, но мой заостренный босс просто столкнулся с этой проблемой и попробовал все, о чем мы могли подумать. Просто НЕ будет установлен из-за ошибки INSTALL_FAILED_UID_CHANGED.

Он удалил некоторые другие приложения (игры) и внезапно установил. Может быть, это проблема дискового пространства на внутренней карте? Dunno, но стоит попробовать, когда кто-то другой ударит его.

Ответ 3

Впервые это произошло, я попытался установить из eclipse, из командной строки и т.д.... Все не удалось, поэтому я сделал factory reset, который затем работал.

Спустя 24 часа это произошло снова.

Не желая делать еще один factory reset, я снова пробовал все те же вещи безрезультатно.

Наконец, я попробовал загрузить наше текущее приложение из AppStore, которое чудесным образом сработало.

Затем я использовал adb для переустановки.

Итак, если у вас есть версия вашего приложения в магазине приложений, попробуйте установить это, чтобы получить что-то на своем телефоне, а затем переустановите "adb -d install -r $PACKAGE.apk

Надеюсь, это поможет кому-то.

Ответ 4

Эта (или какая-то другая магия) помогла мне:

adb shell pm clear MY_PACKAGE_NAME

Ответ 5

Я могу решить эту проблему, как показано ниже, без использования моего Nexus 5.

  • Нажимаем ваше приложение на /sdcard/
  • adb push test.apk/sdcard/
  • оболочка adb
  • adb shell pm install -l/sdcard/test.apk

-l опция означает - pm install: устанавливает пакет в систему. Опции:   -l: установите пакет с FORWARD_LOCK.

Ответ 6

Вот некоторые другие вещи, которые можно проверить/попробовать, которые можно сделать безопасно:

  • Убедитесь, что ваше имя пакета уникально на 100% и не сталкивается с другое приложение. Вы можете временно изменить его для проверки.
  • Попробуйте отключить телефон, а затем снова включить кэши данных.
  • Попробуйте мягкое reset для вашего устройства (которое может быть так же, как выключение/включение).

Ответ 7

Загрузка приложения из магазина воспроизведения решит проблему. Чтобы продолжить разработку приложения, удалите установленное приложение и просто запустите приложение из eclipse.

Он отлично работает.

Ответ 8

Попробуйте удалить кешированные данные в разделе Settings -> Storage, это очистит все данные кэшированного приложения одновременно, но оно выполняет задание (в моем случае)

Ответ 9

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

Ответ 10

Я мог бы исправить это только путем укоренения. Я знаю, что ты не хочешь этого делать, но это сработало для меня. Я загрузил Titanium Backup, после чего обнаружил, что мое удаленное приложение перечеркнуто в списке Titanium Backup. Я не мог избавиться от этого перечеркнутого, пока не перешел на пакетные действия, а затем удалил данные о сироте. Это позволило мне переустановить мое приложение, и это сработало хорошо.

Ответ 11

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

adb install -l -r < 'apk_name' > . apk

-l = прямая блокировка

-r = переустановить

Ответ 12

У меня была такая же проблема. Для меня наконец-то было изменение applicationId (название вашего пакета) в build.gradle на что-то другое, а затем перестроить проект и выполнить успешное развертывание проекта.

Что привело к этой ситуации, я скопировал существующий проект Android Studio в новый и работал над этим новым. Дело в том, что раньше я не использовал оригинальную apk на своем устройстве и пытался только развернуть новую копию приложения.

Ответ 13

Я использовал устройство, которое предназначалось для тестирования, поэтому я просто reset для всего устройства. Он работал у меня любым.

Ответ 14

Я пробовал все выше и NADA!

ЕДИНСТВЕННЫЙ способ, которым это работает для меня (NON ROOTED DEVICE):

1.- Изменить Структура проекта [Ctrl + Alt + Shift + S] → Ароматизаторы: Идентификатор приложения, например: 'com.example.something' to 'com.example.somethingxx'. (что совпадает с изменением файла build.gradle)

2.- Имя пакета Refactor проекта в ИМЯ НОВОГО ИМЯ, которое вы использовали в Идентификаторе приложения: 'com.example.somethingxx'

Это гарантирует, что вы устанавливаете новое приложение на устройстве... дайте мне знать!

Ответ 15

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

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

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

-l = прямая блокировка -r = переустановить

Ответ 16

Для нет корневого устройства вам нужно удалить приложение из списка приложений на устройстве:

  • перейти к настройкам
  • перейдите в "хранилище"
  • на третьей вкладке "загруженные приложения" найдите ваше приложение.
  • вы можете удалить его оттуда

Работает для меня!

Ответ 17

В моем случае сработало изменение имени пакета подписи GCM. так как он удаляет полный пакет.

Для более подробного объяснения нажмите здесь

<permission
        android:name="com.androidcodelab.sampleproject.permission.C2D_MESSAGE"
        android:protectionLevel="signature"/>
   <uses-permission android:name="com.androidcodelab.sampleproject.permission.C2D_MESSAGE"/>

Название пакета проекта изменено на:

<permission
        android:name="com.androidcodelab.xyz.permission.C2D_MESSAGE"
        android:protectionLevel="signature"/>

    <uses-permission android:name="com.androidcodelab.xyz.permission.C2D_MESSAGE"/>

а затем я вернусь к фактическому имени пакета

Ответ 18

Для студии android выберите Файл Структура проекта приложение Flavors и ваше право вы увидите поле Идентификатор приложения, просто измените Идентификатор приложения, и вы готовы к работе...:)

Ответ 19

  • Перейдите в Run/debug configurations.
  • В приложении Android приложение "Добавить".
  • Затем добавьте еще одну конфигурацию в модуле: app

введите описание изображения здесь

Ответ 20

Для меня единственным способом было использование телефона и очистки/данных/данных/каталога. Вот шаги:

1. Откройте веб-браузер на мобильном устройстве
2. Откройте веб-сайт: https://towelroot.com/
3. Нажмите на знак лямбды, чтобы загрузить Towerl Root и установить его позже
4. Откройте приложение "Корневое полотенце" и нажмите кнопку "сделать дождь". Если в нем говорится: "устройство несовместимо", другой пользователь ждет, чтобы запустить устройство.
5. Загрузите приложение SuperSU в Play Маркете 6. Загрузите приложение Terminal Emulator из Play Маркета 7. Запустите эмулятор терминала
8. Введите следующую команду в эмуляторе терминала:

  <Б > су

9. Разрешить доступ суперпользователя к терминальному эмулятору
10. Введите следующую команду в эмуляторе терминала, замените "имя_пакета" на имя своего приложения:

   rm -r/data/data/имя_пакета