Saya memiliki masalah yang sama dengan izin tanda tangan khusus pada Android-21 dan menyelesaikannya dengan memastikan saya melakukan uninstall lengkap.
Ini adalah kasus tepi yang terjadi ketika:
- Aplikasi mendefinisikan izin khusus menggunakan keamanan tingkat tanda tangan
- Anda berupaya memperbarui aplikasi yang diinstal dengan versi yang ditandatangani dengan kunci yang berbeda
- Perangkat uji menjalankan Android 21 atau lebih baru dengan dukungan untuk banyak pengguna
Contoh baris perintah
Berikut ini adalah transkrip baris perintah yang menunjukkan masalah dan cara mengatasinya. Pada titik ini versi debug diinstal dan saya mencoba untuk menginstal versi produksi yang ditandatangani dengan kunci rilis:
# 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]#
Contoh gerhana
Pergi ke arah yang berlawanan (mencoba menginstal debug build dari Eclipse ketika rilis build sudah diinstal), saya mendapatkan dialog berikut:
Jika Anda hanya menjawab ya pada titik ini instalasi akan berhasil.
Contoh perangkat
Seperti yang ditunjukkan dalam jawaban lain, Anda juga dapat membuka halaman info aplikasi di pengaturan perangkat, klik menu overflow, dan pilih "Copot pemasangan untuk semua pengguna" untuk mencegah kesalahan ini.