ADB cài đặt thất bại với INSTALL_FAILED_TEST_ONLY


201

Tôi gặp sự cố khi cài đặt apk vào thiết bị của mình.

adb install <.apk>

Sử dụng lệnh trên trả về như sau:

5413 KB/s (99747 bytes in 0.017s)
        pkg: /data/local/tmp/AppClient.TestOnly.App3.apk
Failure [INSTALL_FAILED_TEST_ONLY]

Bất kỳ ý tưởng về những gì có thể gây ra vấn đề này?

Nó chắc chắn nhận ra thiết bị. Nó có thể là một vấn đề với apk?

Câu trả lời:


274

Có vẻ như bạn cần sửa AndroidManifest.xml
đổi Thay đổi android:testOnly="true"thành android:testOnly="false"hoặc xóa thuộc tính này.

Nếu bạn muốn giữ thuộc tính android:testOnlynhư truebạn có thể sử dụng pm installlệnh với -ttùy chọn, nhưng trước tiên bạn có thể cần pushapk để thiết bị.

$ adb push bin/hello.apk /tmp/
5210 KB/s (825660 bytes in 0.154s)

$ adb shell pm install /tmp/hello.apk 
    pkg: /tmp/hello.apk
Failure [INSTALL_FAILED_TEST_ONLY]

$ adb shell pm install -t /tmp/hello.apk 
    pkg: /tmp/hello.apk
Success

Tôi đã có thể tái tạo vấn đề tương tự và ở trên đã giải quyết nó.

Nếu APK của bạn nằm ngoài thiết bị (trên máy tính để bàn của bạn), thì lệnh bên dưới sẽ thực hiện:

$ adb install -t hello.apk

63
Bạn không cần phải cài đặt adb đẩy và pm, bạn có thể chỉ định công tắc -t ngay sau lệnh cài đặt adb: adb install -t -r
gói.apk

không cần phải đẩy apk nữa, thêm -t hoạt động trong cài đặt adb hoạt động tốt, vì lệnh đầy đủ kiểm tra câu trả lời của tôi dưới đây.
Amit

adb push bin/hello.apk /tmp/không làm việc cho tôi, adb push ./debug.apk /sdcard/temp/debug.apkđã làm việc
HendraWD

adb install -t app/build/outputs/apk/usUnitedStates/debug/app-usUnited-debug.apkđã làm cho tôi.
Sulav Timsina

Cảm ơn. Điều đó đã giải quyết vấn đề của tôi. Ứng dụng của tôi là một ứng dụng hệ thống. Do đó -f là cần thiết. -f: Install package on the internal system memory.
Julian

95

Tôi gặp vấn đề tương tự Android Studio 3.0.0 Beta 7và không thể xuất bản nữa cho cửa hàng chơi.

Như đã nêu ở đây: https://developer.android.com/studio/run/index.html

Lưu ý: Nút Run xây dựng APK với testOnly = "true", có nghĩa là APK chỉ có thể được cài đặt 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 Build> Build APK (s).

Tương tự với bản dựng phát hành, với Android Studio 3bạn cần phải Build > Build APK(s)có apk phát hành không thể kiểm tra mà bạn có thể gửi tới cửa hàng.


6
Tôi nghi ngờ rằng ngay bây giờ (tháng 10 / tháng 11 năm 2017) đây là câu trả lời chính xác cho hầu hết những người đến đây. Trước AS 3, APK được sản xuất bởi "Run" có thể cài đặt được ngay cả ngoài AS, không, không phải vậy.
noamtm

Có bản cập nhật và có thêm một số điều chỉnh .. tôi đã mất một lúc để tìm ra nó: /
ruben

61

Thêm -tcờ cài đặt, như trên ảnh chụp màn hình bên dưới:

câu trả lời là trong hộp màu đỏ


Dự án mẫu tôi biên dịch sử dụng 'com.android.tools.build:gradle:2.4.0-alpha7' và không biên dịch với phiên bản ổn định, chỉ thêm -t như đã đề cập đã giải quyết vấn đề cho tôi.
BubbaGum

7
Hãy giải thích những gì -tkhông.
rmtheis

3
trong trợ giúp của adb, bạn sẽ thấy cài đặt với -t có nghĩa là cho phép các gói thử nghiệm
xiaoyee

màn hình được khởi chạy thông qua nhấp vào Chỉnh sửa Cấu hình trên menu thả xuống mô-đun - giữa các nút Tạo và Chạy, gỡ lỗi ở đầu IDE: developer.android.com/studio/run/rundebugconfig.html
Gene Bo

56

Trong trường hợp của tôi, lỗi này là ở phiên bản lớp không ổn định. Chỉ cần sử dụng một phiên bản ổn định của gradle (không phải alpha, thậm chí là beta). Và nó đã được sửa cho tôi


1
Đã cứu sống ngày! Đã thay đổi phiên bản lớp từ 2.4.0-alpha3 thành 2.3.0
Reaz Murshed

1
Giá của dính vào cạnh chảy máu ... Cảm ơn!
Ryan R

Bất cứ ai cũng có thể xác nhận rằng cài đặt android: testOnly = "true" cũng sẽ sửa nó cho các phiên bản lớp không ổn định?
GPS

43

Sau khi tìm kiếm và duyệt cả ngày, công việc duy nhất là thêm

android.injected.testOnly=false

vào tập tin gradle.properies


28

Tôi đồng ý với Elisey. Tôi đã gặp lỗi tương tự sau khi mở dự án của tôi trong bản xem trước 2.4 và sau đó mở cùng một dự án trong android studio 2.3

Đã khắc phục sự cố bằng cách thay đổi dòng này trong build.gradle từ

classpath 'com.android.tools.build:gradle:2.4.0-alpha5'

đến

classpath 'com.android.tools.build:gradle:2.3.1'


12

thêm dòng này vào 'gradle.properies' của bạn

android.injected.testOnly=false

Cảm ơn! Điều này sẽ khắc phục vấn đề người chạy thìa là tốt!
Basim Sherif

11

Không có bài viết trước giải quyết vấn đề của tôi. Đây là những gì đang xảy ra với tôi:
Tôi thường tải ứng dụng từ studio android bằng cách nhấp vào nút "Chạy". Khi bạn làm điều này, Android sẽ tạo ra một ứng dụng tốt để gỡ lỗi nhưng không phải để cài đặt. Nếu bạn cố gắng cài đặt bằng cách sử dụng:

cài đặt adb -r yourapk

bạn sẽ nhận được một thông báo cho biết:

Lỗi [INSTALL_FAILED_TEST_ONLY]

Khi điều này xảy ra, bạn sẽ cần xây dựng lại apk bằng cách trước tiên xóa bản dựng, sau đó chọn Build-> Build APK. Xem hình ảnh dưới đây:

xây dựng apk android

APK này đã sẵn sàng để được cài đặt thông qua lệnh cài đặt adb hoặc bất kỳ phương pháp nào khác

Hi vọng điêu nay co ich

David


Bạn là một phao cứu sinh. Tôi đã gặp sự cố với bản dựng phát hành (kho khóa bị lỗi) và muốn phân phối các bản dựng gỡ lỗi cho người kiểm tra của tôi.
drulabs

Nếu bạn đang sử dụng appium, bạn cần chỉ định "allowTestPackages": "true"cho các khả năng của sơ đồ e2e.
Joshua Pinter

9

Trong trường hợp của tôi là bằng cách tải lên APK, mặc dù nó đã được ký với chứng chỉ sản xuất và là một biến thể phát hành, được tạo bởi nút chạy từ studio Android. Vấn đề được giải quyết sau khi tạo APK từ Gradle hoặc từ tùy chọn menu Build APK.


1
Điều này bắt đầu xảy ra với Android Studio 3.0 và đề xuất của bạn đã sửa nó cho tôi.
Sky Kelsey

9

Nếu bạn muốn kiểm tra apk, chỉ cần thêm -ttùy chọn dòng lệnh.

Lệnh ví dụ:

adb install -t .\app-debug.apk

4

Tôi thấy câu trả lời được chấp nhận nhưng bạn không thực sự phải đẩy apk và sau đó chạy lệnh trên cài đặt adb shell adb trực tiếp với cờ -t thực sự hoạt động

adb cài đặt -t "đường dẫn đến apk trong máy tính của bạn"

đính kèm ảnh chụp màn hình để tham khảo nhập mô tả hình ảnh ở đây


3

Cách dễ nhất để giải quyết vấn đề này mà không cần quay lại phiên bản lớp cũ hơn là thêm tùy chọn '-t' trong cấu hình chạy (để cài đặt pm).

testOnly = 'false' không có tác dụng gì. Lỗi xảy ra do phiên bản alpha của plugin gradle khiến APK gỡ lỗi 'chỉ nhằm mục đích thử nghiệm'. Tùy chọn -t cho phép cài đặt APK như vậy. Đặt nó trong cấu hình chạy giúp nó tự động cài đặt APK của bạn như bình thường.



2

Tôi không biết liệu nó có hữu ích cho bất kỳ ai hay không, nhưng tôi đã nhận được thông báo lỗi này, khi tôi vô tình cố gắng xây dựng và cài đặt dự án của mình với 'gradle:2.4.0-alpha5'phiên bản plugin gradle thử nghiệm ( ) trong phiên bản Android Studio ổn định ( 2.3không phải trong2.4 preview 5 phiên bản I Đã tải xuống và cài đặt trước đó).

Khi tôi nhận ra sai lầm của mình, tôi đã khởi chạy bản xem trước phiên bản Android Studio và nó đã xây dựng và cài đặt dự án của tôi mà không gặp vấn đề gì.


1

Mặc dù tôi chắc chắn câu trả lời của Saurabh sẽ có hiệu quả với hầu hết những người khác, tôi đã muốn xác định các bước bổ sung mà tôi phải thực hiện để cài đặt apk của mình.

Tôi đã thử đẩy vào thiết bị với kết quả như sau:

? adb push AppClient.TestOnly.App3.apk \tmp\
failed to copy 'AppClient.TestOnly.App3.apk' to '\tmp\': Read-only file system

Sau khi tìm kiếm xung quanh để thay đổi các quyền của hệ thống tập tin, cuối cùng tôi đã thực hiện các lệnh sau:

? adb shell
255|shell@android:/ $ su
shell@android:/ # mount -o remount,rw /
mount -o remount,rw /

Tôi đã nhận được điều này khi tôi cố gắng đẩy một lần nữa:

? adb push AppClient.TestOnly.App3.apk /tmp
failed to copy 'AppClient.TestOnly.App3.apk' to '/tmp': Permission denied

Tôi đã có thể đẩy đến sdcard:

? adb push AppClient.TestOnly.App3.apk /sdcard/
3178 KB/s (99747 bytes in 0.030s)

Tại thời điểm đó tôi đã có thể thực hiện lệnh của Saurabh:

shell@android:/ # pm install -t /sdcard/AppClient.TestOnly.App3.apk
pm install -t /sdcard/AppClient.TestOnly.App3.apk
        pkg: /sdcard/AppClient.TestOnly.App3.apk
Success

1
Tôi nên thêm rằng một số điều này có thể không cần thiết cho những người khác.
chứng minh

Đánh giá cao những nỗ lực thêm!.
Saurabh Meshram

1

Phát hiện của tôi là như dưới đây. Nếu tôi biên dịch bằng giao diện người dùng Android Studio và APK được tạo, tôi không thể chỉ

adb install <xxx.apk>

Nó sẽ tạo ra Failure [INSTALL_FAILED_TEST_ONLY]

Tôi cần phải biên dịch nó bằng cách sử dụng gradle tức là ./gradlew app:assembleRelease. Sau đó, chỉ apk được tạo, sau đó nó chỉ có thể được cài đặt.

Điều này là do Trình biên dịch giao diện người dùng Android Studio, chỉ tạo apk thử nghiệm cho một thiết bị cụ thể, trong khi ./gradlew app:assembleReleaselệnh là thế hệ apk thực tế được cài đặt trên tất cả các thiết bị (và tải lên playstore)


Tham khảo Medium.com/@elye.project/ đá để hiểu rõ hơn về vấn đề này.
Elye

1

Như đã đề cập trong tài liệu :

Android Studio tự động thêm thuộc tính này khi bạn nhấp vào Chạy

Vì vậy, để có thể cài đặt apk của adb install <path to apk file>bạn, bạn cần phải lắp ráp bản dựng từ thiết bị đầu cuối: ./gradlew assembleDebugvà cài đặt với adb. Hoặc chỉ cần chạy ./gradlew installDebugđể xây dựng và cài đặt trên thiết bị đồng thời.


1

Đối với tôi, nó đã hoạt động thực thi nhiệm vụ lớp 'sạch' (bên dưới: ứng dụng, tại ngăn Gradle, thường nằm ở bên phải) và chạy lại dự án.


1

Xây dựng .apk phân phối của bạn từ Android Studio như sau

Xây dựng -> Xây dựng Apk ( đối với bản dựng không dấu) Xây dựng -> Tạo APK đã ký (đối với bản dựng đã ký)

Tùy chọn này xây dựng APK với android: testOnly = "false" cho phép bạn cài đặt APK một cách rõ ràng vào thiết bị bằng commond.

adb cài đặt yourBuilT.apk


1

Những gì làm việc cho tôi là thực hiện Refresh all Gradle projectstừ Gradlethanh công cụ từ menu bên phải.

PFB ảnh chụp màn hình từ Android Studio.

  1. Chọn Gradlethanh công cụ từ menu bên phải.
  2. Chọn Refreshbiểu tượng

Điều này giải quyết vấn đề cho tôi.

Ảnh chụp màn hình từ Android Studio


Cảm ơn bạn đời. Nó bắt đầu sau khi nâng cấp lớp Android lên 4. Triển khai ứng dụng trực tiếp từ studio android hoạt động tốt nhưng không sử dụng thiết bị đầu cuối (cài đặt adb, v.v.) Sau khi làm mới lớp như bạn đã đề cập.
dùng3193413

@ user3193413 Rất vui khi biết bài đăng này đã được trợ giúp
sunil

0

Tôi đã thử dự án bên ngoài, với nhiều apk.

Lệnh từ Studio, trông giống như

adb install-multiple -r ....

Giải pháp -

  • chọn bàn điều khiển
  • lệnh aste với -t

0

đầu tiên loại bỏ phiên bản không ổn định:

adb uninstall vấn đề-gói-tên

; và sau đó cài đặt lại apk.


0

Android 3.6.2.

Xây dựng >> Xây dựng / Gói apk >> Xây dựng apk

Nó hoạt động tốt.nhập mô tả hình ảnh ở đây


0

Trong trường hợp của tôi, sử dụng Android Studio 4.0, phần dưới đây đã giải quyết được vấn đề;

Thêm vào tệp 'gradle.properIES';

android.injected.testOnly=false 
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.