ADBのインストールがINSTALL_FAILED_TEST_ONLYで失敗する


201

デバイスへの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の問題でしょうか?

回答:


274

変更を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は必要ありません
。adbinstall

もうapkをプッシュする必要はありません。追加する-tはadb installで正常に動作します。完全なコマンドについては、以下の私の答えを確認してください。
amIT

adb push bin/hello.apk /tmp/私にとってはadb push ./debug.apk /sdcard/temp/debug.apkうまく
いき

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は、Android Studioが使用するadb経由でのみインストールできます。adbなしでインストールできるデバッグ可能なAPKが必要な場合は、デバッグバリアントを選択し、[ビルド]> [APKのビルド]をクリックします。

同じことがリリースビルドにも当てはまります。ストアに送信できるテスト不可能なリリースAPK Android Studio 3にアクセスする必要がありBuild > Build APK(s)ます。


6
今(2017年10月/ 11月)これはここに来るほとんどの人にとって正しい答えだと思います。AS 3以前は、「Run」によって生成されたAPKはAS外でもインストール可能でしたが、そうではありません。
noamtm 2017年

アップデートがあり、さらに調整が必要です。それを理解するのに少し時間がかかりました:/
ruben

61

-t以下のスクリーンショットのように、インストールフラグを追加します。

答えは赤い箱の中にあります


私がコンパイルしたサンプルプロジェクトは 'com.android.tools.build:gradle:2.4.0-alpha7'を使用しており、安定したバージョンでコンパイルされません。前述のように-tを追加するだけで問題は解決しました。
BubbaGum 2017年

7
-tが起こるか説明してください。
rmtheis 2017

3
adbのヘルプでは、-tを指定したインストールがテストパッケージを許可することを示しています
xiaoyee

画面は、モジュールのドロップダウンメニューの[構成の編集]をクリックして起動します-IDEの上部にある[作成]ボタンと[実行]ボタン、[デバッグ]ボタンの間:developer.android.com/studio/run/rundebugconfig.html
Gene Bo

56

私の場合、この間違いは不安定なGradleバージョンにありました。安定したバージョンのGradleを使用してください(アルファではなく、ベータでもありません)。そしてそれは私のために修正されました


1
その日を救った!
Gradleの

1
最前線にこだわる価格…ありがとう!
ライアンR

だれでもandroid:testOnly = "true"を設定すると、不安定なGradleバージョンでも修正されることを確認できますか?
GPS、

43

一日中検索して閲覧した後、追加するのは1つの作品だけです

android.injected.testOnly=false

gradle.propertiesのファイル


28

私はエリゼイに同意します。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'

18

Android Studio 3.0はテスト専用APKを生成します。

「android:testOnly」プロパティをAndroidマニフェストのタグに追加することで問題を解決しました。

 <application
    .....
    android:testOnly="false"
    android:theme="@style/AppTheme">

そして、Android studio3.0メニューによってAPKを生成しました:ビルド-> APKをビルドします

詳細: https : //commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html



11

以前の投稿のどれも私の問題を解決しません。これが私に起こっていることです:
私は通常、[実行]ボタンをクリックして、Android Studioからアプリをロードします。これを行うと、Androidはデバッグには適していますが、インストールには適さないアプリを作成します。次を使用してインストールしようとした場合:

adb install -r yourapk

次のようなメッセージが表示されます。

失敗[INSTALL_FAILED_TEST_ONLY]

これが発生した場合、まずビルドをクリーンアップしてから[ビルド]-> [APKのビルド]を選択してapkを再構築する必要があります。下の画像をご覧ください。

Android APKをビルドする

このAPKは、adb installコマンドまたはその他の方法でインストールする準備ができています

お役に立てれば

デビッド


あなたは命の恩人です。リリースビルド(障害のあるキーストア)で問題が発生し、デバッグビルドをテスターに​​配布したいと考えました。
drulabs

appiumを使用している場合は"allowTestPackages": "true"、e2eスキーマ機能を指定する必要があります。
Joshua Pinter

9

私の場合、APKをアップロードすることでしたが、これは製品証明書で署名され、リリースバリアントでしたが、Androidスタジオの実行再生ボタンによって生成されました。GradleまたはAPKのビルドメニューオプションからAPKを生成した後に問題が解決しました。


1
これはAndroid Studio 3.0で発生し始め、あなたの提案で修正されました。
Sky Kelsey 2017年

9

APKをテストする場合は、 -tコマンドラインオプションをです。

コマンドの例:

adb install -t .\app-debug.apk

4

受け入れられた回答が表示されますが、実際にapkをプッシュしてから、adbシェルでコマンドを実行する必要はありません。

adb install -t "ur computer in apk to ur computer"

参考のためにスクリーンショットを添付する ここに画像の説明を入力してください


3

古いGradleバージョンに戻さずにこれを解決する最も簡単な方法は、実行構成に「-t」オプションを追加することです(pmインストールの場合)。

testOnly = 'false'はまったく効果がありませんでした。このエラーは、デバッグAPKを「テスト専用」にするGradleプラグインのアルファ版が原因で発生します。-tオプションを使用すると、そのようなAPKをインストールできます。実行構成で設定すると、通常どおりAPKが自動的にインストールされます。



2

誰にとっても便利かどうかはわかりませんが、テストグラドルプラグイン('gradle:2.4.0-alpha5')バージョンを使用してプロジェクトを誤ってビルドし、安定したAndroid Studioバージョン(2.3でなく、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

私はSDカードにプッシュすることができました:

? 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
私はこれのいくつかは他のために必要でないかもしれないことを付け加えるべきです。
2014

余分な努力に感謝します!。
Saurabh Meshram 2014

1

私の発見は以下の通りです。Android Studio UIを使用してコンパイルし、APKを生成した場合、

adb install <xxx.apk>

生成されます Failure [INSTALL_FAILED_TEST_ONLY]

私はgradle ieを使用してコンパイルする必要があります./gradlew app:assembleRelease。次に、生成されたapkだけをインストールします。

これは、Android Studio UI Compileが特定のデバイスのテスト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 install yourBuilT.apk


1

どのような私のために働いたことは実行されてRefresh all Gradle projectsからGradle右のメニューからツールバー。

Android StudioのスクリーンショットをPFBします。

  1. Gradle右側のメニューからツールバーを選択します。
  2. Refreshアイコンを選択します

これで問題は解決しました。

Android Studioのスクリーンショット


どうも。android gradleを4にアップグレードした後に開始しました。androidstudioから直接アプリをデプロイすることは正常に機能しますが、ターミナル(adb installなど)を使用している場合は機能しません。
user3193413 2018

@ user3193413投稿が役に立ったと聞いて
良かった

0

複数のAPKを使用して外部プロジェクトを試しました。

スタジオからのコマンドは次のようになりました

adb install-multiple -r ....

解決 -

  • コンソールを選択
  • コマンドを貼り付け -t

0

最初に不安定版を削除します。

adb uninstall 問題のあるパッケージ名

; APKを再インストールします。


0

Android 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.