2010-03-25 43 views
41

Gần đây tôi đã tải lên ứng dụng của tôi vào thị trường android tuy nhiên nó không chịu chạy khi tải do lỗiđăng apk Android cho lỗi "Tệp gói đã không được ký kết một cách chính xác"

Tệp gói đã không được ký kết một cách chính xác

Lần đầu tiên tôi xuất bản gói bằng nhật thực, nhấp chuột phải xuất, tạo kho khóa rồi xuất bản, tuy nhiên từ chối hoạt động.

Sau đó, tôi đã tải xuống công cụ khóa và biểu tượng khóa và sử dụng chúng để ký một bản nâng cấp mà tôi đã đăng thay thế. Tuy nhiên điều này cho cùng một lỗi.

Tôi không biết mình đã làm gì sai và vì tôi không thể xóa ứng dụng mà tôi không thể thử và bắt đầu lại nên ai cũng có thể giúp tôi?

Cảm ơn

+0

HRM, tôi đã làm điều này nhưng bây giờ tôi nhận được một "Cập nhật không tương thích" lỗi thay thế. o_0 –

+1

Trong khi câu trả lời được chấp nhận có thể đúng cho trường hợp của bạn, đó không phải là câu trả lời duy nhất. Kiểm tra những gì Melloware nói, đó là những gì đã giải quyết được vấn đề của tôi. Thực sự SDK 1.7 không hoạt động! Sử dụng cái cũ, trừ khi có ai đó khắc phục vấn đề này. – zmilojko

Trả lời

53

Bạn có bản sao gỡ lỗi của mình vẫn được cài đặt trên thiết bị nhiều khả năng. Bây giờ bạn đã tải xuống một bản sao khác của cùng một ứng dụng và nó gây ra lỗi này.

Gỡ cài đặt hoàn toàn ứng dụng khỏi thiết bị của bạn. Sau đó tải xuống từ thị trường một lần nữa và nó sẽ làm việc.

+1

Bạn không thể có hai phiên bản ứng dụng trên cùng một thiết bị. Nếu anh ta có bản sao gỡ lỗi với cùng số phiên bản, anh ta sẽ phải gỡ cài đặt nó trước khi thậm chí anh ta có thể tải xuống. Việc cài đặt phiên bản cao hơn phiên bản gỡ lỗi có thể là thủ phạm. – jqpubliq

+0

Đối với tôi, nó đã xóa dữ liệu ứng dụng (từ cài đặt) đã giải quyết được sự cố. –

+0

Dữ liệu ứng dụng ở đâu (từ cài đặt)? Trên điện thoại? Trên máy tính? – theJerm

1

Lỗi này thường xảy ra bởi vì bạn đang cố gắng đẩy một bản cập nhật đã được ký kết với một chìa khóa khác nhau hơn bạn sử dụng trong việc nộp ban đầu. Bạn cần phải tìm khóa bạn đã sử dụng lần đầu tiên bạn xuất bản ứng dụng và sử dụng khóa này để ký vào bản cập nhật.

+3

Lỗi bạn đang đề cập đến là lỗi bạn nhận được khi tải lên thị trường. Anh ấy gặp lỗi khi anh ấy cố chạy ứng dụng. –

+1

Trong trường hợp của tôi, đó là vì tôi đã bắt đầu ký hợp đồng một cách tình cờ ứng dụng của tôi với khóa công cụ JDK7 mà Market không thích. Chuyển đổi trở lại 1.6 keytool sau đó làm cho vấn đề này biến mất. – Melloware

1

Tôi gặp sự cố tương tự với ứng dụng được phát triển của mình.

Chuyển đến Trình quản lý ứng dụng, xóa dữ liệu cho ứng dụng, sau đó buộc dừng nếu ứng dụng đang chạy và gỡ cài đặt ứng dụng. Sau đó thử lại để cài đặt từ thị trường. Điều này làm việc cho tôi.

https://market.android.com/details?id=net.trackmelite.GoogleMaps&feature=search_result

23

OK Tôi có vấn đề này giống nhau và không ai trong số các nghị quyết đề nghị làm việc cho tôi. Tôi đã ký ứng dụng của mình giống như cách tôi đã làm trong 2 năm và Android Market đã chấp nhận nó tốt, chỉ người dùng không thể tải xuống ứng dụng từ Market với lỗi "Gói không được ký".

Những gì nó hóa ra là cho một dự án khác tôi đang làm việc trên tôi đã cài đặt JDK7. Nó đã trở thành JDK mặc định và vì lý do nào đó, keytool cho JDK7 đang ký gói theo cách mà Android không thích. Vì vậy, tôi trở lại JDK 1.6.0_23 và chạy lại xây dựng của tôi và đặt nó trên thị trường và tất cả mọi thứ đã trở lại bình thường.

Tôi hy vọng điều này sẽ giúp người khác.

+0

Đã xảy ra sự cố tương tự. Đây là thủ phạm (trong trường hợp của tôi, anyway)! Tôi tự hỏi những gì thay đổi trong JDK7 không có keytool của nó không tương thích với JDK6 như thế ... – Santa

+0

Tôi đã thêm một câu trả lời mới cho việc ký APK với JDK7 –

+0

Melloware Tôi cũng đang đối mặt với cùng một vấn đề. Và tôi nghĩ rằng giải pháp mà bạn đã cung cấp cho việc xây dựng lại ứng dụng bằng cách sử dụng 1.6 là hoàn toàn chính xác. Nhưng tôi đang sử dụng Unix. Làm thế nào tôi có thể chỉ định rằng ứng dụng nên xây dựng bằng cách sử dụng phiên bản 1.6. Tôi xây dựng ứng dụng bằng các lệnh được thực hiện trên thiết bị đầu cuối. –

4

Có sự cố khi ký APK với JDK7. Bạn có thể giải quyết nó thêm này để build.xml

<presetdef name="signjar"> 
    <signjar sigalg="MD5withRSA" digestalg="SHA1" /> 
</presetdef> 

Nguồn: KIYUT Developer Blog

+0

Tệp build.xml nào, ở đâu? Tôi đang sử dụng MonoDroid ... – theJerm

+0

Tôi xin lỗi, tôi không biết gì về MonoDroid, nếu nó sử dụng cùng một tệp mà một Dự án Android tiêu chuẩn sử dụng. Nếu tôi không sai, trong một dự án Androd chuẩn, build.xml nằm trong thư mục gốc của dự án. –

+0

Hmm, tôi không thể tìm thấy tệp build.xml. Tôi đang sử dụng Eclipse; khá chuẩn, phải không? Một trong các tệp khác có tương ứng với nó không, chẳng hạn như project.properties, default.properties, AndroidManifest.xml hoặc .project? – Erhannis

0

Tôi mới vào Android nhưng tôi đã có thể giải quyết vấn đề một cách kỳ diệu các: D
tôi đã sử dụng Java 1.7 với tôi ứng dụng và tiện ích dòng lệnh được sử dụng [keytool, jarsinger và zipalign] để ký ứng dụng của tôi và gặp lỗi tương tự.
Sau đó, tôi quay trở lại Eclipse và sử dụng công cụ Android "Xuất gói ứng dụng đã ký" với cùng một kho khóa mà tôi đã xuất bản ban đầu ứng dụng của mình; lấy APK đó và sử dụng dòng lệnh để zipalign nó. [Đã để tăng versioncode trong btw manifest]. Tôi đã hủy xuất bản APK cũ và xuất bản APK mới này. Khi bạn thực hiện việc này, không kiểm tra ngay lập tức.
Không chắc bạn phải chờ bao lâu nhưng tôi đã làm việc 4 giờ sau khi tôi kiểm tra :)

16

Trên máy tính bảng, lưu ý rằng nếu bạn cài đặt phiên bản gỡ lỗi của ứng dụng và sau đó gỡ cài đặt như bình thường (kéo đến thùng rác cho đến khi nó nói "gỡ bỏ") đó là không đủ. Bởi vì thuốc có tiềm năng cho nhiều người dùng, bạn cần phải đi đến

Settings > Apps > All 

và sau đó cuộn tất cả các cách để các rất đáy. Ở đó, bạn sẽ thấy ứng dụng của bạn. Chạm vào nó, và sau đó nhấn Menu trong thanh hành động (ba dấu chấm), và sau đó uninstall for all users. Sau đó, bạn sẽ được tốt để đi.

+2

Tôi đã chính xác tình huống này - phiên bản gỡ lỗi trên máy tính bảng, đưa nó vào phiên bản beta tại cửa hàng Play, đã thử để tải xuống, đã nhận được lỗi. Đã được cài đặt qua Cài đặt nhưng nó không hoạt động cho đến khi tôi làm theo hướng dẫn của bạn. Cảm ơn bạn! – Andrea

+2

CẢM ƠN! Điều đó đã cứu ngày của tôi! – Akli

+1

Đây phải là câu trả lời được chấp nhận. –

4

Gần đây, tôi đã ký các apks của mình từ dòng lệnh và gặp phải lỗi này. Tôi giải quyết lỗi này thông qua các hướng dẫn trong liên kết này:

http://developer.android.com/tools/publishing/app-signing.html

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name 
Các vấn đề liên quan