Không thể cài đặt apk đã ký vào thiết bị theo cách thủ công, gặp lỗi "Ứng dụng chưa được cài đặt"


107

Tôi muốn công khai ứng dụng của mình với GooglePlay nhưng trước tiên tôi muốn thực hiện thử nghiệm lần cuối với apk đã ký để đảm bảo rằng tất cả các khóa API đã sử dụng đều hoạt động chính xác với phiên bản phát hành (GMaps, Facebook, v.v.)

Vì vậy, tôi vừa tạo phiên bản ứng dụng đã ký bằng khóa phát hành của chúng tôi và khi tôi cố gắng cài đặt ứng dụng vào thiết bị, tôi đã gặp lỗi:

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

Tôi đã cố gắng sao chép apk vào thiết bị và cài đặt nó bằng ứng dụng trình cài đặt apk.

Điều kỳ lạ là khi tôi thực hiện quy trình tương tự với khóa ký gỡ lỗi, tất cả đều ổn, tôi có thể cài đặt và chạy ứng dụng.

Dưới đây là các bước của thủ tục:

Tôi chọn khóa phát hành , nhập mật khẩu.

Dưới đây là các bước của thủ tục:

Tôi chọn loại bản dựng phát hành thay vì gỡ lỗi

Tôi chọn loại bản dựng phát hành thay vì gỡ lỗi

Chỉ trong trường hợp tôi cũng đã xác định trong tệp gradle các phím ký nhưng tôi phải thừa nhận rằng tôi không biết là nó cần thiết.

Chỉ trong trường hợp tôi cũng đã xác định trong tệp gradle các phím ký nhưng tôi phải thừa nhận rằng tôi không biết là nó cần thiết.

Tôi đã thử như vậy 7 lần bây giờ vì vậy tôi cho rằng vấn đề này không chỉ là do nhập sai mật khẩu , mà tôi có thể làm cho điều này hoạt động với khóa ký android gỡ lỗi tiêu chuẩn.

Vui lòng giúp đỡ nếu bạn có thể.


1
Salam. Câu trả lời này có thể giải quyết vấn đề của bạn: http://stackoverflow.com/a/42745459/1676736
Sayed Abolfazl Fatemi

tôi đang đối mặt với vấn đề tương tự. Lý do thực sự là gì? Bạn đã tìm ra nó? @Adam Varhegyi
Rohit Singh

@RohitSingh Câu trả lời bên dưới, lol.
Adam Varhegyi

Ý tôi là ứng dụng không được gỡ cài đặt hoàn toàn ngay cả khi bạn chưa gỡ cài đặt? Hoặc chỉ có Android 5.0 (hoặc thậm chí cao hơn).
Rohit Singh

1
@RohitSingh Vấn đề của tôi đúng như mô tả của câu trả lời. Ứng dụng đã được cài đặt cho một người dùng khác trên điện thoại và tôi không thấy ứng dụng này với một người dùng khác. Vì vậy, tôi đã phải gỡ bỏ cài đặt nó cho "Tất cả người dùng"
Adam Varhegyi

Câu trả lời:


81

Bạn có thể đang sử dụng thiết bị android 5.0 trở lên.

Chỉ cần vào Cài đặt -> Ứng dụng -> Nhấp vào Ứng dụng của bạn. ---> Trong trang thông tin ứng dụng tại menu thanh tác vụ sẽ có một tùy chọn gọi là "Gỡ cài đặt cho tất cả người dùng" nhấp vào đó. Ứng dụng của bạn sẽ được gỡ cài đặt hoàn toàn và bây giờ bạn có thể thử cài đặt phiên bản mới mà không gặp vấn đề gì. Hy vọng điều này sẽ giúp bạn

Kiểm tra giải pháp của tôi từ liên kết dưới đây.

Liên kết 1

Hy vọng nó sẽ giúp ích cho bạn.


Làm thế quái nào họ có thể làm điều này theo cách đó. Làm việc btw cảm ơn.
Adam Varhegyi

2
Mặc dù liên kết này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo. Các câu trả lời chỉ có liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi.
SOFe

Man cảm ơn bạn rất nhiều, lỗi này đã cho tôi một tuần để tìm ra
Diego Vinícius

Rất vui, đã giúp bạn !! @ DiegoVinícius
Ragu Swaminathan

66

Đối với Updated Android Studio 2.3người dùng hiện tại , câu trả lời này dành cho bạn vì ngày nay hầu như mọi người không sử dụng eclipse để phát triển Android vì Android studio có những tiến bộ rất lớn.

Vì vậy, hãy làm theo cách này để tạo Signed apktệp của bạn .

  1. Build> Tạo Signed apk.
  2. Tạo Keystore path.
  3. Đặt Password, alias, key password.
  4. Build typechọn phù hợp (ví dụ: để phát hành trong cửa hàng chơi release).
  5. Signature Versionchọn cả hai V1V2hộp kiểm.
  6. Finsih.
  7. Truy cập từ explorernơi bạn đã chọn để lưu trữ apk và bạn sẽ thấy .apktên tệp của mình khi app-release.apksử dụng nó.

14
Chọn chữ ký V1 đã làm được điều đó
Meanman

bạn đã tiết kiệm rất nhiều thời gian của tôi
tò mòMind

Làm việc cho tôi. Tiết kiệm thời gian . Cảm ơn
YeeKhin

5
Kiểm tra cả hai V1& V2là giải pháp!
Alex Jolig

1
Kiểm tra V1 đã giải quyết vấn đề cho tôi. Trước đây, chỉ có V2 được kiểm tra.
BluJ IT ngày

51

chọn Phiên bản Chữ ký v1 và v2 đều giải quyết được vấn đề cho tôi .... hãy thử nónhập mô tả hình ảnh ở đây


4
Đây chính xác là vấn đề của tôi. câu hỏi vẫn còn là tại sao chúng ta cũng nên đánh dấu V1 (chữ ký jar)? và làm thế nào google mong đợi chúng ta biết điều này?
A.Alqadomi

Nó không phải là bắt buộc. Bạn nên chọn CẢ HAI hộp kiểm đó nếu có thể, nhưng nếu cơ chế ký V2 mới mang lại cho bạn sự cố, bạn chỉ có thể chọn cả hai nếu gặp sự cố.
Shubhamhackz

43

Điều tương tự cũng xảy ra với tôi, miễn là tôi tạo apk của mình từ Build> Build APK. Tôi có thể cài đặt và hủy cài đặt apk nhiều lần mà không gặp bất kỳ vấn đề gì, nhưng thay vào đó, nếu tôi đã tạo Build> Generate Signed APK, khi tôi chuyển apk vào điện thoại và cố gắng cài đặt nó, nó chỉ cho phép tôi một nhân dịp, cùng một lần xuất hiện thông báo sau:

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

cho đến lúc đó mọi thứ đều ổn nếu tôi chọn "CÀI ĐẶT TRONG BẤT KỲ CÁCH NÀO", nhưng điều gì đã xảy ra nếu tôi gỡ cài đặt ứng dụng và muốn cài đặt lại nó (một trường hợp có thể xảy ra), điều sau đã xảy ra:

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

vì vậy tôi đã giải quyết vấn đề bằng cách tắt tính năng bảo vệ khi chơi mà tôi đã đạt được (trong Google Play)> Trình đơn> Bảo vệ Play> Tìm kiếm các mối đe dọa bảo mật (tắt).

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

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


Giải pháp này phù hợp với tôi. Một thay đổi khác của Google +1
Android sẵn sàng vào

Bạn đã cứu cuộc đời tôi!
akcoban

Bạn có thể vui lòng cho chúng tôi biết tại sao điều này xảy ra? Tôi đang làm gì sai khiến đây là cách khắc phục?
sparkhead95

16

"Ứng dụng chưa được cài đặt" hiển thị khi một ứng dụng có cùng gói đã được cài đặt trên cùng một thiết bị. chỉ cần xóa ứng dụng đầu tiên mà bạn đang sử dụng cho mục đích thử nghiệm trước khi chuyển sang gói ứng dụng đã ký. Điều này sẽ hoạt động. chúc mừng!


8
Vâng, tôi biết nhưng nó chưa được cài đặt trước đây.
Adam Varhegyi

6
Làm cách nào để cài đặt apk với phiên bản cao hơn mà không xóa ứng dụng hiện tại?
user7856586

12

Chọn cả Phiên bản Chữ ký v1 và v2 sẽ giải quyết được sự cố

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

lược đồ v1

Tệp JAR có thể được ký bằng cách sử dụng công cụ jarigner dòng lệnh hoặc trực tiếp thông qua API java.security. Mọi mục nhập tệp, bao gồm các tệp liên quan không có chữ ký trong thư mục META-INF, sẽ được ký nếu tệp JAR được ký bởi công cụ jarigner. Đối với mọi mục nhập tệp đã ký trong tệp JAR đã ký, một mục nhập tệp kê khai riêng lẻ sẽ được tạo cho mục đó miễn là nó chưa tồn tại trong tệp kê khai

Lược đồ V2

chữ ký v1 không bảo vệ một số phần của APK, chẳng hạn như siêu dữ liệu ZIP. Trình xác minh APK cần xử lý nhiều cấu trúc dữ liệu không đáng tin cậy (chưa được xác minh) và sau đó loại bỏ dữ liệu không có chữ ký. Điều này cung cấp một bề mặt tấn công khá lớn. Hơn nữa, trình xác minh APK phải giải nén tất cả các mục đã nén, tiêu tốn nhiều thời gian và bộ nhớ hơn. Để giải quyết những vấn đề này, Android 7.0 đã giới thiệu APK Signature Scheme v2

Theo mặc định, Android Studio 2.2 và Android Plugin cho Gradle 2.2 ký ứng dụng của bạn bằng cách sử dụng cả APK Signature Scheme v2 và sơ đồ ký truyền thống, sử dụng ký JAR.

Bạn nên sử dụng APK Signature Scheme v2 nhưng không bắt buộc. vui lòng xem chi tiết


10

Trong Android Studio 3.0 trở lên

Như mô tả ở đây

Lưu ý: Nút Run tạo APK với testOnly = "true", có nghĩa là APK chỉ có thể được cài đặt thông qua adb (Android Studio sử dụng). Nếu bạn muốn một APK có thể gỡ lỗi mà mọi người có thể cài đặt mà không cần adb, hãy chọn biến thể gỡ lỗi của bạn và nhấp vào (các) gói / (các) APK xây dựng> (các) APK xây dựng.

Thêm thẻ ứng dụngandroid:testOnly="false" bên trong trong AndroidManifest.xml

Tham khảo: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


7

Câu trả lời shubham soni ở trên phù hợp với tôi, thực sự nó xảy ra với phiên bản android> = 5.0. Ở trên, bạn có thể cài đặt chỉ cần sử dụng điều này trong khi tạo apk của mình nhập mô tả hình ảnh ở đây...


1
tại sao câu trả lời trùng lặp này?
sziraqui

@sziraqui: Subhankar soni chưa đề cập lý do tại sao "Không thể cài đặt apk đã ký vào thiết bị theo cách thủ công, gặp lỗi" Ứng dụng chưa được cài đặt ". Tôi gặp phải vấn đề tương tự liên quan đến Phiên bản Os như tôi đã đề cập ở trên, vì vậy để hiểu rõ hơn, tôi đã đề cập đến điều đó. bất cứ điều gì sai về trong câu trả lời của tôi .Đối với phiên bản android <= 5.0 bạn sẽ có thể cài đặt các gói ứng dụng tương tự mà không cần đánh dấu cả hai phiên bản chữ ký hộp kiểm?.
Amit raj

Câu trả lời của bạn chỉ là thêm một điểm vào câu trả lời ban đầu vì vậy nó đáng lẽ phải là một nhận xét. Nếu bạn đang đăng bài này như một câu trả lời, bạn nên thêm một số loại trích dẫn hỗ trợ tuyên bố của bạn về android 5.0. Điều gì sẽ xảy ra nếu vấn đề của bạn thực sự liên quan đến Android Ide chứ không phải phiên bản Android?
sziraqui

Cảm ơn, hình ảnh trong câu trả lời đã cho tôi ý tưởng để thử kích hoạt cả chữ ký V1 và V2. Trước đây tôi chỉ đi với V1
jasxir

6

Ở đây tôi đã giải quyết vấn đề này

Lý do đằng sau vấn đề này là, đã có một ứng dụng có cùng tên gói trong điện thoại, nhưng bạn không thể tìm thấy nó trong menu điện thoại (U đã thực hiện việc hủy cài đặt nhưng thực tế nó vẫn còn trong điện thoại của bạn).

Để xem ứng dụng, hãy vào điện thoại CÀI ĐẶT -> ỨNG DỤNG . Ở đó, bạn có thể thấy ứng dụng, nhưng bên trong nút UNINSTALL có thể bị tắt. nhấp vào nút tràn menu để xem Gỡ cài đặt cho tất cả người dùng .

Sau khi thực hiện gỡ cài đặt cho tất cả người dùng, tôi đã cài đặt thành công gói ứng dụng đã ký của mình. Bạn cũng có thể sử dụng adb để gỡ cài đặt ứng dụng khỏi điện thoại.

adb uninstall package name

Ngoài ra, nếu điện thoại di động của bạn hỗ trợ nhiều người dùng thì hãy kiểm tra xem ứng dụng tương ứng có được cài đặt cho người dùng khác không. Nếu nó được cài đặt cho người khác thì trước tiên hãy gỡ cài đặt ứng dụng trước đó và thử lại


4

Đó là một câu hỏi khá cũ, nhưng giải pháp của tôi là thay đổi Mã phiên bản (tăng) trong build.gradle


4

Đi tới Build.Gradle (module: ứng dụng)

sử dụng cái này - minifyEnabled false


4

minifyEnabled false

là người duy nhất làm việc cho tôi sau 3 ngày nghiên cứu trên tất cả các diễn đàn!


1
Đây dường như chỉ là sự lặp lại câu trả lời hiện có này .
Pang

Với bình luận thêm.
robinCTS

Nói cách khác, điều này nên được đăng dưới dạng một bình luận về câu trả lời đó , không phải là một câu trả lời trong và của chính nó.
robinCTS

3

Điều đó có thể do bạn chạy tệp APK từ bộ nhớ ngoài thẻ SD. Chỉ cần sao chép tệp APK vào bộ nhớ trong, vấn đề sẽ được giải quyết


1

Điều này có thể xảy ra do sự lựa chọn của bạn về phiên bản chữ ký. Trên một số điện thoại, lỗi cài đặt xảy ra nếu phiên bản chữ ký được chọn là V2. Vì vậy, nếu điều đó xảy ra, hãy thử chọn V1, nó chắc chắn sẽ hoạt động.


1

Hôm nay tôi cũng gặp phải vấn đề tương tự, tôi nhớ rằng tôi đã ký gói ứng dụng của mình bằng ký Google Play "mới":


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


Đảm bảo rằng bạn đã ký đơn đăng ký của mình bằng tính năng ký Google Play.

Nếu bạn đã làm:

  • Cài đặt bản cập nhật bằng cách tải gói ứng dụng của bạn lên Google Console (giống như cách bạn thường làm khi cập nhật ứng dụng của mình):

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


  • Sau khi nó được tải lên thành công, hãy mở Artifact librarymenu trong menu.
  • Bạn sẽ thấy apk bạn vừa tải lên.
  • Nhấn nút tải xuống và chọn Download derived APK.

Bây giờ bạn sẽ có thể cài đặt apk.


0

nếu Phiên bản Android Studio của bạn Lớn hơn 3.0

Có vẻ như chúng ta không thể sử dụng trực tiếp apk sau khi chạy trên thiết bị từ thư mục build -> output-> apk.

Sau khi nâng cấp lên android studio 3.0, bạn cần vào Build -> Build Apk (các) sau đó sao chép apk từ build -> output -> apk -> debug

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


Tiêu đề của câu hỏi này - "Cannot install signed apk". Bạn đang đề cập đến apk debug.
KRK

0

Tệp> Cấu trúc dự án> Biến thể xây dựng> Chọn bản phát hành> Đảm bảo rằng 'Cấu hình ký' không trống> nếu nó được chọn từ cửa sổ thả, $signingConfigs.release

Tôi đã làm điều này với Android Studio 3.1.4 và nó cho phép tôi tạo apk phát hành sau khi làm theo tất cả các bước ở trên để tạo apk phát hành và khóa phát hành cũng như thêm thông tin vào bảng xếp hạng ứng dụng. Chúc mừng!


$signingConfigs.releasekhông có sẵn, chỉ $signingConfigs.debugcó sẵn.
KRK

Sau đó, vào Xây dựng> Tạo APK> Chọn APK và làm theo hướng dẫn.
Treewallie

0

Tôi đã gặp phải vấn đề tương tự trong ứng dụng Android của mình. Tôi chỉ cập nhật một số thư viện và sau đó tạo APK ký. Bây giờ công việc của nó.


0

Bạn không phải gỡ cài đặt phiên bản Google Play nếu tính năng Ký ứng dụng của Google Play được bật cho ứng dụng của bạn, hãy làm theo các bước sau:
1. Tạo phiên bản đã ký của ứng dụng bằng khóa phát hành của bạn
2. Đi tới Bảng điều khiển dành cho nhà phát triển trên Google Play
3. Tạo bản phát hành theo dõi kín (bản phát hành alpha hoặc beta) với phiên bản mới được ký của ứng dụng của bạn
4. Giờ đây, bạn có thể tải xuống gói ứng dụng được ký bởi App Signing của Google Play , chọn APK bắt nguồnnhập mô tả hình ảnh ở đây

  1. Cài đặt APK bắt nguồn đã tải xuống

Lý do là App Signing bởi Google Play ký phát hành các ứng dụng bằng các phím khác nhau, nếu bạn đã cài đặt ứng dụng từ Play Store và bạn muốn thử nghiệm ứng dụng phiên bản phát hành mới (được tạo từ Android Studio) trong điện thoại của mình, "Ứng dụng chưa được cài đặt" xảy ra kể từ khi phiên bản cũ và phiên bản mới được ký bằng hai khóa khác nhau: một bằng App Signing của Google Play và một bằng khóa của bạn.



0

Vui lòng gỡ cài đặt ứng dụng gỡ lỗi trong thiết bị hoặc chỉ cần tăng mã phiên bản để khắc phục sự cố này


0

Trong trường hợp của tôi, tôi đang cố gắng kiểm tra cài đặt APK đã ký và phiên bản cài đặt hiện tại trên thiết bị của tôi chưa được ký (tạo phiên bản gỡ lỗi trực tiếp từ Android studio)


0

Đó là điều hiển nhiên nhưng đối với tôi vẫn rất khó để tìm ra,

Vui lòng kiểm tra xem thiết bị di động của bạn có đủ dung lượng để cài đặt apk hay không. và nó không đầy.

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.