INSTALL_FAILED_TEST_ONLY로 ADB 설치 실패


200

장치에 APK를 설치하는 데 문제가 있습니다.

adb install <.apk>

위 명령을 사용하면 다음이 반환됩니다.

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

이 문제의 원인에 대한 아이디어가 있습니까?

확실히 장치를 인식합니다. APK에 문제가 될 수 있습니까?

답변:


273

AndroidManifest.xml
변경 사항 android:testOnly="true"을 수정하거나이 android:testOnly="false"속성을 제거해야합니다.

이 속성을 유지하려면 android:testOnly로서 true당신은 사용할 수 pm install와 명령을 -t옵션, 하지만 당신은해야 할 수도 있습니다 push첫 번째 장치에 APK.

$ 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

나는 같은 문제를 재현 할 수 있었고 위의 문제가 해결되었습니다.

APK가 기기 외부에있는 경우 (데스크톱에서) 아래 명령으로 수행 할 수 있습니다.

$ adb install -t hello.apk

63
adb push 및 pm install을 수행 할 필요가 없습니다. adb install 명령 바로 다음에 -t 스위치를 지정할 수 있습니다. adb install -t -r package.apk
marioc64

더 이상 apk를 푸시 할 필요가 없습니다-adb install에서 -t 작품을 추가하면 정상적으로 작동합니다. 전체 명령을 보려면 아래에서 내 대답을 확인하십시오.
amIT

adb push bin/hello.apk /tmp/나를 위해 일하지 않았다adb push ./debug.apk /sdcard/temp/debug.apk
HendraWD

adb install -t app/build/outputs/apk/usUnitedStates/debug/app-usUnited-debug.apk나를 위해 일했다.
Sulav Timsina

감사. 그게 내 문제를 해결했다. 내 앱은 시스템 앱이었습니다. 따라서 -f가 필요했습니다. -f: Install package on the internal system memory.
율리우스

95

나는 비슷한 문제가 Android Studio 3.0.0 Beta 7있었고 더 이상 Play 스토어에 게시 할 수 없었습니다.

여기에 언급 된대로 : https://developer.android.com/studio/run/index.html

참고 : 실행 버튼은 testOnly = "true"로 APK를 빌드합니다. 즉, APK는 adb (Android Studio에서 사용)를 통해서만 설치할 수 있습니다. 사람들이 adb없이 설치할 수있는 디버깅 가능한 APK를 원하는 경우 디버그 변형을 선택하고 빌드> APK 빌드를 클릭하십시오.

상점에 제출 할 수있는 테스트 할 수없는 릴리스 apk가 Android Studio 3필요 하므로 릴리스 빌드도 마찬가지입니다 Build > Build APK(s).


6
나는 지금 (2017 년 10 월 / 11 월) 이것이 여기에 오는 대부분의 사람들에게 정답이라고 생각합니다. AS 3 이전에는 "Run"에 의해 생성 된 APK는 AS 외부에서도 설치할 수있었습니다.
noamtm

업데이트가 있고 더 많은 조정이 있습니다. 그것을 알아내는 데 시간이 걸렸습니다 : /
ruben

61

-t아래 스크린 샷과 같이 설치 플래그를 추가하십시오 .

답은 빨간색 상자에 있습니다


내가 컴파일 한 샘플 프로젝트는 'com.android.tools.build:gradle:2.4.0-alpha7'을 사용하고 안정적인 버전으로 컴파일하지 않으며 언급 한대로 -t 만 추가하면 문제가 해결되었습니다.
BubbaGum

7
무엇을 설명하십시오 -t.
rmtheis

3
adb 도움말에서 -t로 설치하면 테스트 패키지를 허용한다는 의미입니다.
xiaoyee

화면은 모듈 드롭 다운 메뉴에서 구성 편집을 클릭하여 시작됩니다
Gene Bo

56

제 경우에는이 실수가 불안정한 gradle 버전이었습니다. 알파 버전이 아니라 베타 버전이 아닌 안정적인 버전의 gradle을 사용하십시오. 그리고 그것은 나를 위해 고정되었습니다


1
하루를 구했다! Gradle 버전을 2.4.0-
alpha3

1
최첨단을 고수하는 가격 ... 감사합니다!
Ryan R

android : testOnly = "true"를 설정하면 불안정한 gradle 버전에서도 문제가 해결되는지 확인할 수 있습니까?
GPS

43

하루 종일 검색하고 탐색 한 후에는 유일한 작품이 추가됩니다.

android.injected.testOnly=false

받는 사람 gradle.properties의 파일


28

나는 Elisey에 동의합니다. 2.4 미리보기에서 프로젝트를 연 다음 android studio 2.3에서 동일한 프로젝트를 연 후에도 동일한 오류가 발생했습니다.

build.gradle에서이 줄을 변경하여 문제를 해결했습니다.

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

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


12

이 줄을 'gradle.properties'에 추가하십시오.

android.injected.testOnly=false

감사! 스푼 러너 문제도 해결됩니다!
Basim Sherif

11

이전 게시물 중 어느 것도 내 문제를 해결하지 못했습니다. 여기에 무슨 일이 일어나고 있습니다 :
나는 일반적으로 "실행"버튼을 클릭하여 안드로이드 스튜디오에서 응용 프로그램을로드합니다. 이렇게하면 android는 디버그에는 좋지만 설치에는 적합하지 않은 앱을 만듭니다. 다음을 사용하여 설치하려고하면 :

adb 설치 -r yourapk

다음과 같은 메시지가 나타납니다.

실패 [INSTALL_FAILED_TEST_ONLY]

이 경우 먼저 빌드를 정리 한 다음 빌드-> 빌드 APK를 선택하여 APK를 다시 빌드해야합니다. 다음 이미지를 참조하십시오.

안드로이드 APK 빌드

이 APK는 adb install 명령 또는 다른 방법으로 설치할 수 있습니다

도움이 되었기를 바랍니다

데이비드


당신은 생명의 은인입니다. 릴리스 빌드 (결함이없는 키 저장소)에 문제가 있었고 디버그 빌드를 테스터에게 배포하려고했습니다.
drulabs

appium을 사용 "allowTestPackages": "true"하는 경우 e2e 체계 기능 을 지정 해야합니다.
Joshua Pinter

9

필자의 경우 APK를 업로드하여 프로덕션 인증서로 서명했지만 릴리스 변형 이었지만 Android 스튜디오의 실행 재생 버튼으로 생성되었습니다. Gradle 또는 Build APK 메뉴 옵션에서 APK를 생성 한 후 문제가 해결되었습니다.


1
이것은 Android Studio 3.0에서 시작되었으며 귀하의 제안으로 해결되었습니다.
스카이 켈지

9

APK를 테스트하려면 -t명령 행 옵션을 추가하십시오 .

명령 예 :

adb install -t .\app-debug.apk

4

허용 된 답변을 볼 수 있지만 실제로 apk를 푸시 한 다음 adb shell direct adb install--t 플래그로 명령을 실제로 실행할 필요는 없습니다.

adb install -t "UR 컴퓨터의 APK 경로"

참조를 위해 스크린 샷 첨부 여기에 이미지 설명을 입력하십시오


3

이전 gradle 버전으로 되 돌리지 않고이 문제를 해결하는 가장 쉬운 방법은 실행 구성 (pm 설치)에 '-t'옵션을 추가하는 것입니다.

testOnly = 'false'는 전혀 효과가 없었습니다. 오류는 디버그 버전을 '테스트 전용'으로 만드는 gradle 플러그인의 알파 버전으로 인해 발생합니다. -t 옵션을 사용하면 이러한 APK를 설치할 수 있습니다. 실행 구성에서 설정하면 평소와 같이 APK가 자동으로 설치됩니다.



2

그것이 누군가에게 유용할지 아닌지는 모르겠지만 실수 'gradle:2.4.0-alpha5'로 안정적인 Android Studio 버전 ( 2.3, not에서 테스트 gradle 플러그인 ( ) 버전으로 프로젝트를 빌드하고 설치하려고 할 때이 오류 메시지가 나타납니다 .2.4 preview 5 버전 I이 이전에 다운로드하여 설치했습니다).

실수를 깨달았을 때 Android Studio 버전 미리보기를 시작했으며 아무런 문제없이 프로젝트를 빌드하고 설치했습니다.


1

Saurabh의 답변이 대부분의 다른 사람들에게 도움이 될 것이라고 확신하지만 APK를 설치하기 위해 취해야 할 추가 단계를 확인하고 싶었습니다.

나는 다음과 같은 결과로 장치를 밀어 보았습니다.

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

파일 시스템 RW 권한을 변경 한 후 다음 명령을 실행했습니다.

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

다시 밀려 고 할 때 이것을 얻었습니다.

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

나는 sdcard에 밀어 넣을 수 있었다 :

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

그 시점에서 나는 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
이 중 일부는 다른 사람에게는 필요하지 않을 수도 있다고 덧붙여 야합니다.
evve

추가 노력에 감사드립니다!.
Saurabh Meshram

1

내 결과는 다음과 같습니다. Android Studio UI를 사용하여 컴파일하고 APK를 생성하면

adb install <xxx.apk>

그것은 생성 할 것이다 Failure [INSTALL_FAILED_TEST_ONLY]

gradle ie를 사용하여 컴파일해야합니다 ./gradlew app:assembleRelease. 그런 다음 생성 된 APK 만 설치하면됩니다.

Android Studio UI 컴파일은 특정 기기에 대해서만 테스트 APK를 생성하는 반면, ./gradlew app:assembleRelease명령은 모든 기기에 설치되는 실제 APK 생성 (및 Playstore에 업로드)이기 때문입니다.


문제를 더 잘 이해 하려면 medium.com/@elye.project/… 를 참조 하십시오.
Elye

1

문서 에서 언급했듯이 :

실행을 클릭하면 Android Studio가이 속성을 자동으로 추가합니다

따라서 APK를 설치하려면 adb install <path to apk file>터미널에서 빌드를 조립 ./gradlew assembleDebug하고 adb로 설치해야합니다. 또는 ./gradlew installDebug장치에서 동시에 빌드하고 설치하기 위해 실행 하십시오.


1

나를 위해 gradle 작업 'clean'(: app 아래의 Gradle 창에서 일반적으로 오른쪽에 있음)을 실행하고 프로젝트를 다시 실행했습니다.


1

다음과 같이 Android Studio에서 배포 .apk를 빌드하십시오.

빌드-> 빌드 APK ( 서명되지 않은 빌드 용) 빌드-> 서명 된 APK 생성 (서명 된 빌드 용)

이 옵션은 android : testOnly = "false"옵션으로 APK를 빌드합니다.이 옵션을 사용하면 commond에 의해 장치에 APK를 신속하게 설치할 수 있습니다.

adb yourBuilT.apk 설치


1

나를 위해 일한 것은 오른쪽 메뉴 Refresh all Gradle projectsGradle툴바에서 수행 됩니다 .

PFB Android Studio의 스크린 샷.

  1. Gradle오른쪽 메뉴에서 툴바를 선택하십시오 .
  2. Refresh아이콘을 선택하십시오

이것은 나를 위해 문제를 해결했습니다.

Android Studio 스크린 샷


고마워 친구 android gradle을 4로 업그레이드 한 후 시작되었습니다. android studio에서 직접 앱을 배포하면 제대로 작동하지만 터미널을 사용하는 경우에는 작동하지 않습니다 (adb 설치 등). 언급 한대로 gradle을 새로 고친 후 작동합니다.
user3193413

@ user3193413 게시물이 도움이되었다 니 반갑습니다
sunil

0

여러 개의 APK로 외부 프로젝트를 시도했습니다.

Studio의 명령은 다음과 같습니다.

adb install-multiple -r ....

해결책 -

  • 콘솔을 선택하십시오
  • aste 명령 -t

0

먼저 불안정한 버전을 제거하십시오.

adb uninstall 문제가있는 패키지 이름

; APK를 다시 설치하십시오.


0

안드로이드 3.6.2.

빌드 >> 빌드 / 번들 APK >> 빌드 apk

잘 작동합니다.여기에 이미지 설명을 입력하십시오


0

필자의 경우 Android Studio 4.0을 사용하여 아래 문제를 해결했습니다.

'gradle.properties'파일에 추가하십시오.

android.injected.testOnly=false 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.