Eu tive o mesmo problema com uma permissão de assinatura personalizada no Android-21 e a resolvi, certificando-me de que estava fazendo uma desinstalação completa.
Este é um caso extremo que ocorre quando:
- Um aplicativo define uma permissão personalizada usando segurança no nível de assinatura
- Você tenta atualizar o aplicativo instalado com uma versão assinada com uma chave diferente
- O dispositivo de teste está executando o Android 21 ou mais recente, com suporte para vários usuários
Exemplo de linha de comando
Aqui está uma transcrição da linha de comando que demonstra o problema e como resolvê-lo. Neste ponto, uma versão de depuração está instalada e estou tentando instalar uma versão de produção assinada com a chave de lançamento:
# 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]#
Exemplo do Eclipse
Indo na direção oposta (tentando instalar uma compilação de depuração do Eclipse quando uma compilação de versão já está instalada), recebo o seguinte diálogo:
Se você responder sim neste momento, a instalação será bem-sucedida.
Exemplo de dispositivo
Conforme indicado em outra resposta, você também pode acessar uma página de informações do aplicativo nas configurações do dispositivo, clicar no menu excedente e selecionar "Desinstalar para todos os usuários" para evitar esse erro.