web-dev-qa-db-fra.com

L'installation d'ADB échoue avec INSTALL_FAILED_TEST_ONLY

Je rencontre des problèmes pour installer un apk sur mon appareil. 

adb install <.apk>

L'utilisation de la commande ci-dessus renvoie les éléments suivants:

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

Une idée sur ce qui pourrait causer ce problème?

Il reconnaît définitivement l'appareil. Serait-ce un problème avec l'apk?

131
evve

On dirait que vous devez modifier votre AndroidManifest.xml
Remplacez Android:testOnly="true" par Android:testOnly="false" ou supprimez cet attribut.

Si vous souhaitez conserver l'attribut Android:testOnly en tant que true, vous pouvez utiliser la commande pm install avec l'option -t, mais vous devrez peut-être Push l'apk d'abord sur le périphérique.

$ 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

J'ai pu reproduire le même problème et ce qui précède l'a résolu.

Si votre APK est en dehors de l'appareil (sur votre bureau), la commande ci-dessous le ferait:

$ adb install -t hello.apk
172
Saurabh Meshram

J'ai eu un problème similaire avec Android Studio 3.0.0 Beta 7 et je ne pouvais plus publier sur le Play Store.

Comme indiqué ici: https://developer.Android.com/studio/run/index.html

Remarque: le bouton Exécuter crée un APK avec testOnly = "true", ce qui signifie L'APK ne peut être installé que via adb (utilisé par Android Studio). Si vous voulez un APK débogable que les gens peuvent installer sans adb, sélectionnez votre variante de débogage et cliquez sur Construire> Construire APK.

Il en va de même pour la version de version, avec Android Studio 3, vous devez accéder à Build > Build APK(s) pour disposer d'un apk de version non testable que vous pouvez soumettre au magasin.

72
Gabriel Morin

Dans mon cas, cette erreur était en version instable. Utilisez simplement une version stable de Gradle (pas alpha, pas même bêta). Et c'était réglé pour moi

54
Eugene Voronoy

Ajoutez le drapeau -t à installer, comme sur la capture d'écran ci-dessous:

answer is in the red box

50
sunqi228

Je suis d'accord avec Elisey. J'ai eu la même erreur après avoir ouvert mon projet dans l'aperçu 2.4 puis le même projet dans Android Studio 2.3

Correction du problème en modifiant cette ligne dans build.gradle à partir de

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

à

classpath 'com.Android.tools.build:gradle:2.3.1'
28
Patrick Maroney

Après avoir recherché et parcouru toute la journée, il ne reste plus qu’à ajouter

Android.injected.testOnly=false

vers le fichier gradle.properties

23
Linyun Liu

Android studio 3.0 génère test uniquement APK.

J'ai résolu le problème en ajoutant la propriété "Android: testOnly" à la balise du manifeste Android. 

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

Et ensuite généré le fichier APK par Android studio3.0: Construire -> Construire APK (s).

Plus d'infos:https://commonsware.com/blog/2017/10/31/Android-studio-3p0-flag-test-only.html

11
Hardian

Dans mon cas, le téléchargement d'un fichier APK a été généré par le bouton d'exécution du studio Android . Problème résolu après la génération du fichier APK de Gradle ou de l'option Construire le menu APK de menu. .

9
lujop

ajoutez cette ligne à votre fichier 'gradle.properties'

Android.injected.testOnly=false
8
nick lee

Si vous voulez tester l'apk, ajoutez simplement l'option -t en ligne de commande.

Exemple de commande:

adb install -t .\app-debug.apk
6
Louis CAD

Le moyen le plus simple de résoudre ce problème, sans revenir à une version plus ancienne de Gradle, consiste à ajouter l'option '-t' dans les configurations d'exécution (pour l'installation par pm).

testOnly = 'false' n'a eu aucun effet. L'erreur est provoquée par la version alpha du plugin Gradle qui permet de déboguer APK 'à des fins de test uniquement'. L'option -t permet à de tels APK d'être installés. En le configurant en mode d’exécution, il vous installe automatiquement comme d'habitude.

3
3c71

Je vois la réponse acceptée, mais vous ne devez pas réellement pousser l'APK, puis exécuter la commande sur adb Shell, installer directement l'adb avec -t flag

adb install -t "chemin d'accès à l'apk dans votre ordinateur"

joindre une capture d'écran pour référence  enter image description here

3
amIT

Aucun des post précédent ne résout mon problème. Voici ce qui se passe avec moi:
Je charge normalement l'application depuis Android studio en cliquant sur le bouton "Exécuter". Lorsque vous faites cela, Android crée une application qui convient au débogage mais pas à l'installation. Si vous essayez d'installer en utilisant:

adb install -r yourapk

vous recevrez un message qui dit:

Échec [INSTALL_FAILED_TEST_ONLY]

Lorsque cela se produit, vous devrez reconstruire l'apk en nettoyant d'abord la construction, puis sélectionnez Construire-> Construire APK. Voir l'image ci-dessous:

build Android apk

Cet APK est prêt à être installé via la commande adb install ou par toute autre méthode.

J'espère que cela t'aides

David

2
us_david

cela fonctionne pour moi adb install -t myapk.apk

2
Vardaan Sharma

Je ne sais pas si ça va être utile à qui que ce soit ou non, mais j'ai reçu ce message d'erreur quand j'ai accidentellement essayé de construire et d'installer mon projet avec la version d'essai du plugin de test gradle ('gradle:2.4.0-alpha5') dans la version stable d'Android Studio (2.3, pas dans 2.4 preview 5 version que j'avais déjà téléchargée et installée auparavant).

Quand j'ai réalisé mon erreur, j'ai lancé la version préliminaire de la version Android Studio, qui a construit et installé mon projet sans problème.

Ma conclusion est comme ci-dessous. Si je compile à l'aide de l'interface utilisateur Android Studio et que l'APK est généré, je ne peux pas simplement 

adb install <xxx.apk>

Il va générer Failure [INSTALL_FAILED_TEST_ONLY]

J'ai besoin de le compiler en utilisant le gradle, c'est-à-dire ./gradlew app:assembleRelease. Alors seulement l'apk généré, alors il ne peut être installé.

Cela est dû au fait que l'interface utilisateur Android Studio Compile génère uniquement des tests apk pour un périphérique particulier, tandis que la commande ./gradlew app:assembleRelease correspond à la génération actuelle d'apk devant être installée sur tous les périphériques (et chargée dans le magasin de lecture)

1
Elye

Ce qui a fonctionné pour moi est d'exécuter Refresh all Gradle projects à partir de la barre d'outils Gradle dans le menu de droite.

PFB la capture d'écran de Android Studio. 

  1. Sélectionnez la barre d’outils Gradle dans le menu de droite.
  2. Sélectionnez l'icône Refresh

Cela a résolu le problème pour moi.

 Screenshot from Android Studio

1
sunil

Bien que je sois certain que la réponse de Saurabh fonctionnera pour la plupart des gens, je souhaitais identifier les étapes supplémentaires à suivre pour installer mon apk.

J'ai essayé d'appuyer sur l'appareil avec le résultat suivant:

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

Après avoir cherché à modifier les autorisations RW du système de fichiers, j'ai finalement exécuté les commandes suivantes:

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

Je l'ai eu quand j'ai essayé de pousser à nouveau:

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

J'ai pu pousser à la carte SD:

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

A quel point j'ai pu exécuter le commandement de 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

Construisez votre distribution .apk à partir de Android Studio comme suit

Construire -> Construire Apk (s) (pour une construction non signée) Construire -> Générer un APK signé (pour une construction signée)

Cette option construit l'APK avec Android: option testOnly = "false" qui vous permet d'installer l'APK explicitement dans l'appareil par le biais du commond.

adb installez yourBuilT.apk

1
Abhinandan

Pour moi, cela a fonctionné, exécutez la tâche Gradle 'clean' (sous: app, dans le volet Gradle, généralement situé à droite) et relancez le projet.

1
jbourne

J'ai essayé le projet externe, avec plusieurs apk.

La commande de Studio ressemblait à 

adb install-multiple -r ....

Solution - 

  • sélectionnez la console 
  • commande aste avec -t
0
Stoyan Mihaylov

supprime d'abord la version instable:

adb uninstall problematic-package-name

; puis réinstallez l'apk.

0
Pnemonic

Comme mentionné dans documentation :

Android Studio ajoute automatiquement cet attribut lorsque vous cliquez sur Exécuter.

Donc, pour pouvoir installer votre apk avec adb install <path to apk file>, vous devez assembler la construction à partir du terminal: ./gradlew assembleDebug et installer avec adb. Ou exécutez simplement ./gradlew installDebug pour créer et installer simultanément sur le périphérique.

0
ultraon