Tôi gặp vấn đề tương tự với quyền chữ ký tùy chỉnh trên Android-21 và đã giải quyết nó bằng cách đảm bảo rằng tôi đang thực hiện gỡ cài đặt hoàn chỉnh.
Đây là trường hợp cạnh xảy ra khi:
- Một ứng dụng xác định quyền tùy chỉnh sử dụng bảo mật mức chữ ký
- Bạn cố cập nhật ứng dụng đã cài đặt với phiên bản được ký bằng một khóa khác
- Thiết bị thử nghiệm đang chạy Android 21 trở lên với sự hỗ trợ cho nhiều người dùng
Ví dụ dòng lệnh
Dưới đây là bảng điểm dòng lệnh thể hiện vấn đề và cách giải quyết nó. Tại thời điểm này, một phiên bản gỡ lỗi được cài đặt và tôi đang cố gắng cài đặt phiên bản sản xuất được ký với khóa phát hành:
# 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]#
Ví dụ về Eclipse
Đi theo hướng ngược lại (cố gắng cài đặt bản dựng gỡ lỗi từ Eclipse khi bản dựng phát hành đã được cài đặt), tôi nhận được hộp thoại sau:
Nếu bạn chỉ trả lời có tại thời điểm này, cài đặt sẽ thành công.
Ví dụ thiết bị
Như đã chỉ ra trong một câu trả lời khác, bạn cũng có thể truy cập trang thông tin ứng dụng trong cài đặt thiết bị, nhấp vào menu tràn và chọn "Gỡ cài đặt cho tất cả người dùng" để ngăn lỗi này.