Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android INSTALL_FAILED_UID_CHANGED

He estado haciendo la depuración en Android usando mi Nexus 4, sin embargo, recientemente he encontrado este error aquí. Después de hacer algunas investigaciones sobre este error, parece ser un problema con la aplicación no se eliminan correctamente. La aplicación que estoy depurando funciona bien en mis otros dispositivos Android, así como los emuladores, este error sólo se produce en mi Nexus 4. He conectado mi dispositivo en la computadora, y he intentado eliminar las carpetas de datos / datos, pero todavía estoy recibiendo el Mismo problema. También he comprobado la configuración de las aplicaciones para comprobar que estaba definitivamente desinstalado.

¿Alguien tiene alguna idea de cómo resolver este problema? De acuerdo con algunos usuarios, necesito tener acceso root para borrar datos / datos correctamente, ¿es esto cierto? ¿O hay otra forma de evitar esto?

26 Solutions collect form web for “Android INSTALL_FAILED_UID_CHANGED”

A veces también hay que desinstalar las carpetas de datos. Para mí, yo tenía un paquete en el espacio de usuario de com.kikin.cts , y también un directorio de carpetas en /data/data/com.kikin.cts . Mantuvo el INSTALL_FAILED_UID_CHANGED , pero después de quitar la carpeta de datos, el error desapareció.

Para dispositivos con raíces:

Ejecute el siguiente comando

 adb rm -rf /data/data/<your.package.name> 

Para dispositivos no arraigados:

  1. Cambiar el ApplicationId de la aplicación. Consulte este enlace para cambiar ApplicationId.
  2. Genere e instale la aplicación. La aplicación se instalará correctamente porque se trata como una nueva aplicación.
  3. Ahora desinstale esta aplicación. Que borrará los datos.
  4. Ahora cambie el ApplicationId al anterior.
  5. Construir e instalar. Magic .. Se instalará.

Reinicie su dispositivo y limpie su proyecto. Básicamente, la desinstalación habría hecho esto para usted en caso de que si no, entonces intentar reiniciar.

Probablemente introdujo un SharedUserID que causa esto.

Tengo raíz en mi Nexus 5, pero nada funcionó, por lo que tuve que ejecutar un restablecimiento de fábrica de la configuración que funcionó.

Para mí el truco se hizo desmarcando "Verificar aplicaciones a través de USB" en la sección "Opciones de desarrollador".

Tengo otra solución trabajando para mí. Puede cambiar el nombre del paquete de la aplicación , para que el dispositivo lo reconozca como una aplicación diferente y la instalación se completa correctamente. Puede ser útil para aquellos que no tienen acceso root y tampoco quieren restablecer el dispositivo.

Esto funcionó para mí:

 adb shell rm -rf /system/app/<package.name> 

Desde el shell ADB se puede encontrar la solución de dos maneras. 1. mantener los datos y encontrar la solución y 2. solución sin persistir los datos

La solución para 1. es ejecutar el comando adb chown -R UID:UID /data/data/your.package.name través del símbolo del sistema desde la ruta ADB.

La solución para 2. es ejecutar el comando adb rm -r /data/data/your.package.name desde la misma ruta.

Estaba experimentando este problema durante los últimos dos días en mi Galaxy Note 3 dispositivo de prueba. He estado usando Calabash-Andrdoid y seguí recibiendo un error INSTALL_FAILED_UID_CHANGED, siempre que el método install_app intentó ejecutar. Yo estaba luchando con este problema porque tenía dos dispositivos de prueba experimentando esto. He intentado todo lo anterior, incluyendo el vaciado de mi / data / data / app y app.test carpetas. Incluso eliminé la instrumentación de back-end cosas que Xamarin instala ya que es la plataforma que utiliza para desarrollar mi aplicación. No pude encontrar nada más para borrar manualmente del dispositivo. Cuando intenté hacer mi trabajo en el tercer dispositivo y encontré que todo funcionó con éxito, realicé que el problema estaba con los dispositivos. Al final, lo único que funcionó para mí fue ejecutar un restablecimiento de fábrica de uno de los dispositivos. Espero que esto ayude.

Gracias, -Shah

Pensé compartir esto en caso de que ayuda a alguien … Escribí una nueva versión de mi aplicación en eclipse y traté de ejecutarlo en mi teléfono a pesar de tener una versión un poco más antigua en el teléfono que he descargado de Google Play Store. Eclipse apareció un diálogo preguntando si yo estaba feliz de desinstalar la versión existente en el teléfono y yo estaba de acuerdo. La desinstalación fue defectuosa y llevó a INSTALL_FAILED_UID_CHANGED.

He probado la mayoría de las cosas sugeridas aquí sin suerte. No había ningún rastro aparente del APK en mi teléfono, o cualquier archivo de datos que pudiera encontrar para borrar, pero algo me estaba impidiendo cargar el APK en el teléfono desde eclipse. Tampoco pude descargar mi versión de prueba beta de Google Play: la descarga se realizó al 100% pero luego falló con un mensaje informando "error desconocido" y un número (probablemente -24).

Estaba dudando en cambiar el nombre de mi paquete porque ya tengo probadores beta y productos en la aplicación configurados con el nombre del paquete antiguo, pero cambié el nombre del paquete en eclipse temporalmente y pude instalar esa nueva versión en el teléfono y luego descargar La antigua versión de Google Play también. Ambas versiones se sentaron felices al lado del otro en el teléfono con el mismo nombre de la aplicación y el icono (pero diferentes nombres de paquetes detrás de las escenas). Entonces podría desinstalar manualmente uno o ambos arrastrando el icono de la aplicación al icono de desinstalación del teléfono. La desinstalación manual eliminó el conflicto y reparó la desinstalación defectuosa de eclipse, así que simplemente cambié el nombre de mi paquete eclipse al nombre original y lo llevé como antes.

Esto fue mucho menos doloroso que un restablecimiento de fábrica o un cambio de nombre de paquete permanente. Probablemente sólo funciona cuando el origen del error es un conflicto entre una versión de eclipse y una versión de Google Play, pero vale la pena intentarlo si se encuentra en una situación similar.

En la mayoría de los casos, INSTALL_FAILED_DEXOPT o INSTALL_FAILED_UID_CHANGED significa que no tiene suficiente espacio para instalar la aplicación.

Elimina algunas aplicaciones no utilizadas de tu dispositivo o al menos elimina la versión actual de la aplicación.

 adb uninstall package-name 

En casos muy raros puede haber problemas con los datos de la aplicación. Tiene dos opciones dependiendo de si su dispositivo está enraizado o no

Sin raíces

Restablecimiento de fábrica Settings -> Backup and reset -> Factory data reset (al menos para Samsung S5)

Enraizado (o emulador)

 adb shell "rm -rf /data/data/package-name" 

Bueno, por lo que para mi LG NEXUS 4 raíces aquí es la solución: (

  • Asegúrese de tener en algún lugar su aplicación de trabajo apk firmado o sin firmar)

y

  • Desinstaló este archivo de su teléfono (si existe por supuesto)

Digamos que es: app-debug-unaligned.apk

Ahora en la consola escribes:

 adb push app-debug-unaligned.apk /sdcard/ adb shell su rm -fr /data/local/tmp/app-debug-unaligned.apk rm -fr /data/data/app-debug-unaligned.apk 

Ahora salga de adb y llame

 adb shell su -c "pm install /sdcard/app-debug-unaligned.apk" 

¿Trabajando?

Aquí hay algo que no está cubierto por las respuestas existentes. Esto me estaba sucediendo en el emulador. Si restablezco datos de usuario, obtengo INSTALL_FAILED_DEXOPT la primera vez, pero INSTALL_FAILED_UID_CHANGED después de eso. Encontré que rm -r /data/data/com.foo.bar es suficiente para restablecer al primer estado.

El verdadero culpable en mi caso es un nombre de método java que causó dexopt a fallar. Preste mucha atención a lo que hay en logcat. Esto es lo que lo regaló:

 I/PackageManager( 1275): Running dexopt on: com.foo.bar E/dalvikvm( 2857): Invalid name: '__jni_setLocation' E/dalvikvm( 2857): Trouble with item 14787 @ offset 0x43b68 E/dalvikvm( 2857): Cross-item verify of section type 0005 failed E/dalvikvm( 2857): ERROR: Byte swap + verify failed E/dalvikvm( 2857): Optimization failed W/installd( 941): DexInv: --- END '/data/app/com.foo.bar-1.apk' --- status=0xff00, process failed E/installd( 941): dexopt in='/data/app/com.foo.bar-1.apk' out='/data/dalvik-cache/data@app@com.foo.bar-1.apk@classes.dex' res=65280 W/PackageManager( 1275): Package couldn't be installed in /data/app/com.foo.bar-1.apk 

No puedo decirte por qué dexopt no le gustan algunos nombres de métodos, pero ese era el problema.

Simplemente desinstale la aplicación en sí (no las carpetas de datos) y vuelva a instalarla, y debería estar bien. Android se queja porque es posible que haya depurado previamente la aplicación desde otra computadora.

Una solución para dispositivos no arraigados. Vaya al Administrador de aplicaciones y desinstale la aplicación llamada "Selendroid" y vuelva a intentarlo. Esta solución funciona para mí.

Yo arreglar esto, tal vez va a trabajar a nadie más.

Estoy reiniciando mi teléfono, luego eliminar un poco más de la aplicación. Y trate de nuevo para instalar, es el trabajo!

Tal vez el problema se trata de almacenamiento. No sé por qué, pero ahora es trabajo. ¡Buena suerte! (Lo siento por mal inglés)

Utilizar

Adb shell

Ir a la cáscara.
A continuación, ejecute el comando siguiente:

Rm -rf / datos / datos / nombre del paquete

Repleace por favor el nombre del paquete con su propio, por ejemplo com.map.map

Para cualquier persona que ejecuta pruebas de estilo Junit desde su computadora y obtener este error, mientras que la consola me dijo que había un problema con mi aplicación (empaquetado en el formato 'com.myapp.stuff'), el problema real era mi paquete de código de prueba , Que si se está ejecutando en un dispositivo se instala como una aplicación independiente con el nombre del paquete como 'com.myapp.stuff.test'. La eliminación del código de prueba "aplicación" con el Administrador de aplicaciones y la eliminación de mi aplicación real resuelto el problema para mí. Estoy publicando esta respuesta aquí para salvar a alguien más un "Duh" momento.

El mismo problema en un dispositivo Mediacom, primero

 $ adb install -r platforms/android/out/android-debug-unaligned.apk 3958 KB/s (22887489 bytes in 5.647s) pkg: /data/local/tmp/android-debug-unaligned.apk Failure [INSTALL_FAILED_DEXOPT] 

Entonces una muy persistente :

 $ adb install -r platforms/android/out/android-debug-unaligned.apk 4949 KB/s (22887489 bytes in 4.515s) pkg: /data/local/tmp/android-debug-unaligned.apk Failure [INSTALL_FAILED_UID_CHANGED] 

Hacer un reset de fábrica no cambió la dinámica (conseguí ambos errores, en secuencia).

  • Instalar la misma aplicación con un id diferente trabajado
  • Instalar una aplicación diferente con el identificador anterior no

El enraizamiento no es una opción, la solución para mí fue un borrado de caché: ahora el id de aplicación ofensiva funciona bien y no tuve que restablecer de fábrica (de nuevo).

Espero eso ayude

He eliminado /data/data/my.package.name y /data/app/my.package.name.apk , el problema sigue siendo persistente.

Sin embargo encontré una carpeta /data/user/0/my.package.name , lo borro y solucioné el problema.

Para mí, había un poco más. Simplemente eliminando /data/data/appfolder no ayudó.

La razón adicional era que mis libs externas no estaban incluidas en el archivo .apk porque el nombre de la carpeta era lib en lugar de libs . Esto ha causado [INSTALL_FAILED_DEXOPT] durante la instalación de apk seguida de [INSTALL_FAILED_UID_CHANGED] .

Cambiar el nombre de la librería de librerías funcionó para mí en este caso.

He encontrado una solución que funciona tanto en un dispositivo no enraizado y en un emulador. Si bien no puede eliminar directamente las carpetas de datos de un dispositivo no arraigado, puede utilizar el comando pm para hacerlo:

  1. Ejecutar adb shell
  2. Ejecutar pm uninstall <app name> (es decir, com.example.myapp)
  3. Ejecutar pm uninstall <test app name> (es decir, com.example.myapp.test) – podría recibir un error si la aplicación de prueba no se había instalado antes.

Parece que por alguna razón al desinstalar las aplicaciones de la interfaz de usuario de Android esto no funciona (posiblemente no elimina las carpetas de datos) sin embargo al desinstalar a través del comando pm funciona.

Probado en un "Nexus 5" y en un "OnePlus One".

Es obviamente debido a la desinstalación incorrecta (probablemente debido a la conexión defectuosa del cable).

SOLUCIÓN Descargue SDMaid de play-store, y elimine archivos de Corpse (archivos basura). Vuelva a ejecutar la aplicación. (Pero usted necesita tener su dispositivo arraigado)

Me encontré con el problema similar. El reson es que no desinstalaste todos los componentes de la aplicación. Mi solución es: eliminar /data/data/com.eg.android.AlipayGphone manualmente.

Funciona bien para mí.

Espero que sea útil para u!

El enraizamiento y el restablecimiento de fábrica no eran una opción para mí, pero pude encontrar una versión más vieja de mi APK e instalar eso (supongo que era el mismo que no pudo desinstalar correctamente). Después de desinstalar una vez más, pude instalar nuevas versiones.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.