Traté de reinstalar un apk
$adb install -r new.apk
Y muestra el error:
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
Una solución es desinstalar e instalar new.apk, que funciona bien.
Pero me pregunto si podría reconstruir un apk y volver a instalarlo sin la desinstalación. P.ej. cambiar alguna configuración en AndroidManifest.xml, o no firmar el APK, etc.
Le agradecería mucho que me dijera todo el significado de los "INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES".
Respuestas:
Significa que la nueva copia de su aplicación (en su máquina de desarrollo) se firmó con una clave de firma diferente a la copia anterior de su aplicación (instalada en el dispositivo / emulador). Por ejemplo, si se trata de un dispositivo, es posible que haya colocado la copia anterior desde una máquina de desarrollo diferente (por ejemplo, alguna máquina de otro desarrollador). O bien, el antiguo está firmado con su clave de producción y el nuevo está firmado con su clave de depuración.
fuente
debug.keystore
) a su nueva máquina.debug.keystore
no está en el directorio de su proyecto. Normalmente está en su~/.android/
directorio. (ver developer.android.com/guide/publishing/… )debug.keystore
). Elija uno para que sea su almacén de claves maestro, cópielo en todas las otras máquinas de desarrollo, reemplazando su almacén de claves existente.debug.keystore
). Una vez que reconstruí el proyecto (usando Build-> Rebuild en Android Studio), las claves se sincronizaron.Me encontré con esto mientras probaba en un nuevo Xoom. Anteriormente había instalado mi aplicación desde Marketplace. Más tarde, al intentar probar una nueva versión de la aplicación, me encontré con este error.
Lo arreglé eliminando la aplicación que se instaló a través de Marketplace (solo mantenla presionada y arrástrala a la papelera). Posteriormente pude implementar mi versión de desarrollo sin ningún problema.
fuente
Esto me sucedió cuando otro desarrollador del equipo creó nuestra aplicación en el dispositivo de hardware en el que intentaba implementar. Desinstalar la aplicación del hardware solucionó mi problema.
fuente
adb uninstall <package name>
. Gracias.Este es el comando para desinstalar la aplicación del dispositivo usando adb:
fuente
Recibí este error incluso después de desinstalar el APK original, que era desconcertante. Finalmente me di cuenta de que había configurado varios usuarios en mi Nexus 7 para realizar pruebas y que la aplicación todavía estaba instalada para uno de los otros usuarios. Una vez que lo desinstalé para todos los usuarios, el error desapareció.
fuente
Cambié el nombre del paquete mientras codificaba una actualización para poder depurarlo en mi dispositivo a través de Eclipse, sin eliminar la versión anterior que estaba instalada. Sin revertir el nombre del paquete que estaba usando al intentar reinstalar, recibí este mismo error. Usando el mismo nombre de paquete, la reinstalación fue exitosa.
fuente
Simplemente elimine la compilación anterior del dispositivo y vuelva a instalar la misma. Debido a que device.keystore ya existe en el dispositivo, simplemente desinstale la compilación y vuelva a instalar el APK, eso es todo ...
Gracias
fuente
Me enfrenté a otro caso de uso donde obtuve el error similar. Cuando al principio recibí el error, entré en pánico y lo eliminé
/data/data/{package.name}
Después de eso lo intenté y mi problema aún estaba presente. Luego intenté desinstalar, falló.Luego eliminé el archivo apk presente en
/system/app
(acceso raíz requerido) e intenté desinstalarlo y fue exitoso.Después de eso intenté reinstalar el apk, funcionó.
fuente
Por lo que vale, me encontré con este problema después de agregar un nuevo complemento a mi proyecto Cordova. Había estado haciendo cordova hacer compilaciones e instalar directamente en el dispositivo a través de USB.
Lo arreglé desinstalando la aplicación del dispositivo y en la siguiente implementación no hubo problemas.
fuente
Si encuentra una implementación fallida en un dispositivo o emulador de Andorid con el error "Falla [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]" en la Ventana de salida, simplemente elimine la aplicación existente en el dispositivo o emulador y vuelva a implementar. Las compilaciones de depuración utilizarán un certificado de depuración, mientras que las compilaciones de lanzamiento utilizarán su certificado configurado. Este error simplemente le informa que el certificado de la aplicación instalada en el dispositivo es diferente al que está intentando instalar. En escenarios que no son de desarrollo (tienda de aplicaciones), esto puede ser un indicador de una aplicación corrupta o modificada que no es segura de instalar en el dispositivo.
fuente
Nada desde arriba funcionó para mí. El problema para mí fue que tenía una fuente incorrecta en mi Java Build Path para android-support-v7-appcompat. Cuando vaya a Proyecto> Ruta de compilación> Configurar ruta de compilación>. En la pestaña Fuente, asegúrese de tener android-support-v7-appcompat / gen, android-support-v7-appcompat / libs y android-support-v7-appcompat / src y nada más. Haga clic en Aceptar y debería funcionar.
fuente
Hoy he tenido el mismo error, pero el problema no era exactamente el mismo. Estoy usando ADB con Android instalado en VirtualBox . Traté de instalar diferentes versiones de mi aplicación (firmado / no firmado, modo de depuración / liberación) y obtuve dos errores alternativamente:
INSTALL_FAILED_UID_CHANGED
yINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
.Ahora, al mirar
/data/data/{package.name}
, encontré un montón de archivos que todavía estaban allí después de desinstalar la aplicación. Lo intentérm -rf
sin éxito: obtuve errores de E / S.La solución a esto fue:
vdfuse
(lectura / escritura)Partition1
archivo de imagen cone2fsck
fuente
Tuve el mismo problema hasta que me di cuenta de que tenía el simulador ejecutándose y adb estaba tratando de instalarlo
fuente
Como la verificación se basa en el nombre del paquete, puede cambiar el nombre del paquete dentro de su config.xml o archivo de manifiesto por otro nombre que desee.
Al publicar su aplicación, ¡no olvide volver a cambiar el nombre!
fuente
Tuve este problema al intentar ejecutar la tarea de gradle
connectedDebugAndoidTest
(oconnectedAndroidTest
) en Genymotion . Ejecutarlo en un emulador normal resolvió el problema.fuente
Creo que su aplicación está instalada por otra cuenta. (Función de modo de cuenta múltiple) Puede desinstalar la aplicación en Configuración> Aplicaciones> "nombre de la aplicación"> Desinstalar
fuente