Ошибка установки: INSTALL_FAILED_UID_CHANGED no root
Я проверил все решения, комментарии и ответы по всем другим вопросам в StackOverflow.
Я выполнял, компилировал и отлаживал свое приложение в течение нескольких месяцев. Но внезапно это сообщение появилось в моем Eclipse при использовании моего Nexus, чтобы играть с ним.
MOBILE:
- У меня нет корня!!! (Это Nexus, и у меня нет корня, и все ответы в других вопросах Stackoverflow требуют выполнения root)
- Приложение удалено, его нет в "Приложениях"
- Поскольку у меня нет доступа root, я не могу получить доступ к папке /data/data,//data/local или/datali >
- Я знаю, что проблема будет решена, сбросив телефон до настроек factory, но, искренне, я не могу.
ECLIPSE:
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
Это решение работало для меня:
-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/имя_пакета