Tuve el mismo problema con un permiso de firma personalizado en Android-21 y lo resolví asegurándome de que estaba haciendo una desinstalación completa.
Este es un caso extremo que ocurre cuando:
- Una aplicación define un permiso personalizado utilizando seguridad de nivel de firma
- Intenta actualizar la aplicación instalada con una versión firmada con una clave diferente
- El dispositivo de prueba ejecuta Android 21 o posterior con soporte para múltiples usuarios
Ejemplo de línea de comando
Aquí hay una transcripción de línea de comandos que demuestra el problema y cómo resolverlo. En este punto, se instala una versión de depuración y estoy tratando de instalar una versión de producción firmada con la clave de lanzamiento:
# This fails because the debug version defines the custom permission signed with a different key:
[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
920 KB/s (2211982 bytes in 2.347s)
pkg: /data/local/tmp/Example-release.apk
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.example.android.example.PERMISSION_EXAMPLE_PLUGIN pkg=com.example.android.example]
# I use uninstall -k because apparently that is similar to uninstalling as a user
# by dragging the app out of the app tray:
[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb uninstall -k com.example.android.example
The -k option uninstalls the application while retaining the data/cache.
At the moment, there is no way to remove the remaining data.
You will have to reinstall the application with the same signature, and fully uninstall it.
If you truly wish to continue, execute 'adb shell pm uninstall -k com.example.android.example'
# Let's go ahead and do that:
[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb shell pm uninstall -k com.example.android.example
Success
# This fails again because the custom permission apparently is part of the data/cache
# that was not uninstalled:
[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
912 KB/s (2211982 bytes in 2.367s)
pkg: /data/local/tmp/Example-release.apk
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.example.android.example.PERMISSION_EXAMPLE_PLUGIN pkg=com.example.android.example]
# In spite of the warning above, simply doing a full uninstall at this point turned out to
# work (for me):
[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb uninstall com.example.android.example
Success
# Release version now successfully installs:
[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
898 KB/s (2211982 bytes in 2.405s)
pkg: /data/local/tmp/Example-release.apk
Success
[root@localhost svn-android-apps]#
Eclipse ejemplo
Yendo en la dirección opuesta (tratando de instalar una compilación de depuración de Eclipse cuando ya está instalada una compilación de lanzamiento), aparece el siguiente cuadro de diálogo:
Si solo responde sí en este punto, la instalación tendrá éxito.
Ejemplo de dispositivo
Como se señaló en otra respuesta, también puede ir a la página de información de la aplicación en la configuración del dispositivo, hacer clic en el menú de desbordamiento y seleccionar "Desinstalar para todos los usuarios" para evitar este error.