Ứng dụng Android không cài đặt. Một gói hiện có cùng tên với chữ ký xung đột đã được cài đặt


131

Trong trình giả lập của tôi, khi tôi cố gắng nâng cấp apk của mình theo lập trình. Tôi có:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

nhập mô tả hình ảnh ở đây

Tôi vẫn đang trong giai đoạn thử nghiệm của bản nâng cấp này, vì vậy tệp tôi tải xuống là apk đã ký của phiên bản trước, tôi nghĩ rằng nó sẽ hoạt động mà không gặp vấn đề gì.

Từ gợi ý trong: một gói hiện có cùng tên với chữ ký xác nhận đã được cài đặt, tôi đã thử chạy trình giả lập cả ở chế độ gỡ lỗi và ở chế độ bình thường ... đều không hoạt động.

Bạn có suy nghĩ gì về những gì tôi đang thiếu?


1
sử dụng cùng chữ ký để ký apk trước khi cài đặt
Praveen Sharma

Sự cố này phát sinh do chữ ký hoặc tệp lưu trữ khóa không khớp tìm liên kết cho giải pháp: readyandroid.wordpress.com/ Từ
Sẵn sàng cho Android

Câu trả lời:


97

Vấn đề là các khóa đã được sử dụng để ký APK, theo mặc định nếu bạn đang chạy trực tiếp từ IDE và mở Trình giả lập, APK được cài đặt trong Trình mô phỏng được ký với khóa gỡ lỗi của bạn (thường được cài đặt trong ~ / .android /debug.keystore), vì vậy, nếu APK trước đó được ký bằng một khóa khác với khóa bạn đang sử dụng, bạn sẽ luôn gặp phải xung đột chữ ký, để khắc phục, hãy đảm bảo rằng bạn đang sử dụng chính khóa đó để ký cả hai APK, ngay cả khi APK trước đó đã được ký bằng khóa gỡ lỗi từ SDK khác, các khóa chắc chắn sẽ khác nhau.

Ngoài ra, nếu bạn không biết chính xác khóa nào đã được sử dụng trước đó để ký apk và bạn muốn cài đặt phiên bản mới của ứng dụng, bạn chỉ cần gỡ cài đặt ứng dụng trước đó và cài đặt lại ứng dụng mới.

Hi vọng điêu nay co ich...

Trân trọng!


Tôi sẽ làm một người không đăng nhập apk và thực hiện tải xuống / cài đặt thủ công bên trong trình giả lập. Trình giả lập sau đó nên tải xuống apk không có chữ ký khác và thử nâng cấp. Nếu điều này hoạt động, tôi sẽ chấp nhận câu trả lời của bạn. Thx
James Oravec

@MartinCazares có cách nào để lấy khóa apk không? vì vậy tôi không bị mất dữ liệu ứng dụng của mình?
heisenberg

Chà, nếu bạn đã cài đặt ứng dụng, bạn nên có chìa khóa, ngoài ra bạn sẽ ký apk như thế nào? Nếu apk trước đó không phải do bạn tạo, thì bạn cần yêu cầu nhà phát triển apk đó lấy khóa, ngoài ra không có cách nào để lấy khóa được sử dụng để ký apk ...
Martin Cazares

Cảm ơn rất nhiều vì điều này! Bạn đã cứu ngày của tôi và đội của tôi! Haha
perozzo

1
Tôi có một ứng dụng TRỰC TIẾP trong playstore, bây giờ tôi đã cài đặt ứng dụng đó trong thiết bị thử nghiệm và bây giờ Để cập nhật phiên bản mới hơn của ứng dụng Tôi đang cập nhật "versionno" và "versionname" trong tệp xây dựng ứng dụng. Bây giờ tôi đã thực hiện một bản dựng phát hành với khóa đã ký, bây giờ trong khi tôi đang cố gắng cài đặt bản dựng đó trong đó thông qua một lỗi ::: Một nhịp điệu hiện có cùng tên với một chữ ký xung đột đã được cài đặt. Và không được cài đặt quá. Giúp đỡ một cách tử tế .
Tarit Ray

195

Tôi đã có cùng một thông báo lỗi, nhưng những câu trả lời này không giúp được gì. Trên 4.3 nexus 7, tôi đã sử dụng một người dùng KHÔNG phải là chủ sở hữu. Tôi đã gỡ cài đặt phiên bản cũ hơn nhưng tôi vẫn nhận được thông báo tương tự.

Giải pháp: Tôi phải đăng nhập với tư cách là chủ sở hữu và truy cập Cài đặt -> Ứng dụng, sau đó vuốt sang tab Tất cả. Cuộn xuống cuối danh sách nơi các phiên bản cũ được liệt kê với dấu 'không được cài đặt'. Chọn nó và nhấn nút 'cài đặt' ở góc trên bên phải và cuối cùng là 'gỡ cài đặt cho tất cả người dùng'


2
Tôi đã phải vuốt từ "Đã tải xuống" sang danh sách "Tất cả" để tìm thấy nó trong danh sách Ứng dụng.
ShawnFeatherly

1
Như bạn đã đề cập, hãy đảm bảo bạn cuộn xuống tận cùng - các ứng dụng "chưa cài đặt" không được liệt kê theo thứ tự bảng chữ cái.
jmcmann

3
CẢM ƠN BẠN!!! Đây cũng là vấn đề của tôi sau khi cho bạn bè mượn Nexus 7 thử nghiệm của tôi. Nghĩ rằng các khóa của tôi đã bị hỏng ... Tôi đã xóa người dùng đó chỉ để giảm sự nhầm lẫn trong tương lai.
mm2001

1
Tiết kiệm thời gian của tôi. Thanh danh.
Piyush Patel

2
Cảm ơn. Tôi đã phải đăng nhập vào tất cả người dùng và gỡ cài đặt 1 by 1.
Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

nhập mô tả hình ảnh ở đây

Truy cập Cài đặt> Ứng dụng, tìm và mở thông tin ứng dụng. Sau đó, mở menu tràn (3 chấm dọc) và chọn Gỡ cài đặt cho tất cả người dùng.


Điều này đã giúp tôi - cảm ơn. Vì một số lý do, tôi đã có hai phiên bản ứng dụng của mình xuất hiện ở đó ngay cả sau khi gỡ cài đặt nó qua màn hình chính.
Joro Tenev

Cảm ơn Joro Tenev Bỏ phiếu cho tôi
Keshav Gera


5

Có một sự khác biệt giữa các tệp APK đã ký và chưa ký. Nhiều khả năng bạn đã có một dấu không dấu trên đó trước đó. Bạn chỉ cần xóa không dấu trước khi cài đặt phiên bản đã ký. Làm thế nào điều này có thể được thực hiện khác nhau trên phiên bản chính xác, nhưng nói chung, hãy vào trình giả lập để cài đặt-> ứng dụng, nhấp dài vào ứng dụng của bạn và xóa / xóa / gỡ cài đặt nó.


Tôi sẽ tạo một apk không dấu và tải xuống apk không dấu và xem nếu nó giải quyết nó, nếu có thì tôi có thể kiểm tra các apks đã ký bằng phần cứng. Tôi sẽ chấp nhận câu trả lời nếu đây là trường hợp.
James Oravec

Tôi đang cố gắng thực hiện nâng cấp từ trong chương trình của mình, do đó, việc gỡ cài đặt / cài đặt thủ công sẽ không hoạt động.
James Oravec

Khi tôi cài đặt ứng dụng chưa ký, tôi chỉ cần lấy app not installed. Tôi đã kiểm tra các cài đặt giả lập và nó đã Allow installation of apps from unknown sourceskiểm tra. Vì vậy, điều này dường như không phải là giải pháp.
James Oravec

cho bạn một phiếu bầu cho các đề xuất. Tôi nghĩ rằng nó đã giúp chúng tôi đi đến giải pháp cuối cùng. cảm ơn!
James Oravec

5

Nếu bạn đang sử dụng apk gỡ lỗi, khóa được sử dụng để đăng nhập

C:\Users\<user>\.android\debug.keystore

Nếu bạn sử dụng cùng khóa đó, sẽ không có xung đột khi cài đặt.


Cảm ơn rất nhiều, ngày hôm qua tôi đã thay đổi ổ cứng máy của mình từ ổ đĩa cơ sang ổ Solid State do đó tôi cần nâng cấp Windows của mình, tôi đã gặp phải vấn đề tương tự sau đó tôi đã sao chép tệp debug.keystore từ thư mục windows trước sang mới thư mục windows vấn đề được giải quyết :)
Arslan Sohail

Cảm ơn câu trả lời, vì nó thực sự đã giải quyết vấn đề của tôi, tôi đang lập trình với một người bạn và chúng tôi gặp vấn đề này thường xuyên, bây giờ chúng tôi đang chia sẻ khóa gỡ lỗi, mọi thứ đều ổn.
Gustavo Magalhães

5

Nếu các giải pháp trên không hiệu quả với bạn thì bạn có thể đã làm một việc như sau ..

1) cài đặt ứng dụng từ Appstore.
2) cập nhật nó với dấu APK với cùng tên phiên bản cập nhật.

Vì vậy, về cơ bản có hai loại nếu APK.

1) bạn đã tải lên trên playstore được gọi là APK gốc.
2) tải xuống từ playstore được gọi là APK có nguồn gốc.

Trong trường hợp này về cơ bản, bạn đang tải xuống apk có nguồn gốc và cập nhật nó với APK gốc.

Để cho nó hoạt động tốt, đã tải lên APK mới được phát hành đã ký trong chế độ thử nghiệm nội bộ trên Cửa hàng Google Play và tải xuống APK dẫn xuất để kiểm tra kịch bản cập nhật.

nhập mô tả hình ảnh ở đây



1

Tôi gặp sự cố khi cả gỡ lỗi và phát hành bản dựng sẽ không cài đặt trên các thiết bị tôi đã sử dụng để gỡ lỗi. Thông điệp tương tự sẽ xuất hiện khi cố gắng cài đặt phiên bản mới. Cách giải quyết duy nhất là gỡ cài đặt phiên bản hiện tại và cài đặt phiên bản mới.

Có vẻ như studio Android đánh dấu apk mà nó cài đặt để cài đặt bằng trình quản lý gói sẽ phân biệt giữa phiên bản được cài đặt để gỡ lỗi và phiên bản được tải xuống từ Google play hoặc các nguồn bên ngoài khác (điều này không bao giờ xảy ra với tôi khi sử dụng nhật thực).


1

Nó có thể là ứng dụng không gỡ cài đặt thành công. Nếu thiết bị của bạn là trường hợp này, bạn có thể thử phương pháp này.

Trước tiên hãy lấy tên gói của ứng dụng, ví dụ: 'com.xxx.app', bạn có thể sử dụng Root Explorer và tìm nó từ tệp Manifest (RE có thể giải mã tệp). sau đó bạn có thể sử dụng tập lệnh này để gỡ cài đặt nó:

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

Lỗi gói giống nhau:

  1. Tạo một Gói mới trong ứng dụng của bạn với tên khác.
  2. Sao chép và dán tất cả các tập tin trong gói cũ của bạn vào Gói mới.
  3. Lưu mã.
  4. Xóa gói cũ và làm sạch và xây dựng lại dự án.

1. Rất 2. ngắn 3. có thể 4. sử dụng 5. giải thích.
Yunnosch

1

nhập mô tả hình ảnh ở đâyTôi đã phải đăng nhập với tư cách là chủ sở hữu và truy cập Cài đặt -> Ứng dụng, sau đó vuốt sang tab Tất cả. Cuộn xuống cuối danh sách nơi các phiên bản cũ được liệt kê với dấu 'không được cài đặt'. Chọn nó và nhấn nút 'cài đặt' ở góc trên bên phải và cuối cùng là 'gỡ cài đặt cho tất cả người dùng'


Điều đó làm việc cho tôi, nhưng ... bây giờ khi tải xuống từ trang web của tôi, ứng dụng không tải xuống (ít nhất là vào thư mục Tải xuống). Không có lỗi báo cáo. Chỉ không xảy ra. Khi tôi cắm điện thoại vào máy tính, tôi có thể sao chép APK vào điện thoại và cài đặt mà không có lỗi nào được báo cáo.
Ron

0

Có thể có một lý do khác khi ứng dụng của bạn sẽ không cập nhật khi bạn thay đổi / thêm / xóa shareId trong AndroidManifiest.

"android: sharedUserId"

Vui lòng kiểm tra xem.

Để ngăn chặn sẽ khuyến nghị sử dụng sharedUserId trong ứng dụng của bạn mặc dù trong yêu cầu hiện tại của bạn, bạn cần hoặc ngay bây giờ.


0

Tôi đã thử tất cả các cách trên và nó không hoạt động.

Tôi thấy rằng mặc dù gỡ cài đặt ứng dụng, một phiên bản mới của ứng dụng vẫn gây ra lỗi tương tự.

Đây là những gì đã giải quyết: đi tới Cài đặt -> Chung -> Trình quản lý ứng dụng -> chọn ứng dụng của bạn -> nhấp vào ba dấu chấm trên cùng -> gỡ cài đặt cho tất cả người dùng

Khi bạn thực hiện việc này, bây giờ nó thực sự được gỡ cài đặt và bây giờ sẽ cho phép phiên bản mới của bạn cài đặt.

Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.