webentwicklung-frage-antwort-db.com.de

ADB-Installation schlägt mit INSTALL_FAILED_TEST_ONLY fehl

Ich habe Probleme beim Installieren eines APK auf meinem Gerät. 

adb install <.apk>

Bei Verwendung des obigen Befehls wird Folgendes zurückgegeben:

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

Irgendeine Idee, woran es liegen könnte?

Es erkennt das Gerät definitiv. Könnte es ein Problem mit dem apk sein?

131
evve

Sieht aus, als müssten Sie Ihren AndroidManifest.xml ändern.
Ändern Sie Android:testOnly="true" in Android:testOnly="false" oder entfernen Sie dieses Attribut.

Wenn Sie das Attribut Android:testOnly als true beibehalten möchten, können Sie den Befehl pm install mit der Option -t, but verwenden. Möglicherweise müssen Sie zunächst die apk-Komponente auf das Gerät Push setzen.

$ 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

Ich konnte das gleiche Problem reproduzieren und löste es.

Befindet sich Ihr APK außerhalb des Geräts (auf Ihrem Desktop), führen Sie den folgenden Befehl aus:

$ adb install -t hello.apk
172
Saurabh Meshram

Ich hatte ein ähnliches Problem mit Android Studio 3.0.0 Beta 7 und konnte nicht mehr im Play Store veröffentlichen.

Wie hier angegeben: https://developer.Android.com/studio/run/index.html

Hinweis: Mit der Schaltfläche Ausführen wird eine APK mit testOnly = "true" erstellt. Dies bedeutet Die APK kann nur über adb installiert werden (das Android Studio verwendet). Ob Wenn Sie ein fehlerfreies APK wünschen, das von den Benutzern ohne Adb installiert werden kann, wählen Sie .__ aus. Ihre Debug-Variante und klicken Sie auf Erstellen> APKs erstellen.

Dasselbe gilt für die Erstellung von Releases. Mit Android Studio 3 müssen Sie zu Build > Build APK(s) wechseln, um eine nicht testbare Release-Apk zu erhalten, die Sie an den Store senden können.

72
Gabriel Morin

In meinem Fall war dieser Fehler in einer instabilen gradle Version. Verwenden Sie einfach eine stabile Version von Gradle (nicht Alpha, nicht einmal Beta). Und es wurde für mich behoben

54
Eugene Voronoy

Fügen Sie wie im folgenden Screenshot -t install hinzu:

answer is in the red box

50
sunqi228

Ich stimme mit Elisey überein. Ich habe den gleichen Fehler erhalten, nachdem ich mein Projekt in der 2.4-Vorschau und dann das gleiche Projekt in Android Studio 2.3 geöffnet hatte

Das Problem wurde behoben, indem diese Zeile in build.gradle von geändert wurde

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

zu

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

Nachdem Sie den ganzen Tag gesucht und gesucht haben, können Sie nur noch hinzufügen

Android.injected.testOnly=false

in die Datei gradle.properties

23
Linyun Liu

Android Studio 3.0 generiert nur Test APK.

Ich habe das Problem durch Hinzufügen der Eigenschaft "Android: testOnly" zum Android-Manifest-Tag gelöst. 

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

Und dann das APK nach Android Studio3.0-Menü generiert: Erstellen -> APK (s) erstellen.

Weitere Informationen:https://commonsware.com/blog/2017/10/31/Android-studio-3p0-flag-test-only.html

11
Hardian

In meinem Fall war das Hochladen einer APK, die zwar mit einem Produktionszertifikat signiert war und eine Release-Variante war, durch den Run-Play-Button aus dem Android-Studio erzeugt worden Problem gelöst, nachdem APK aus Gradle oder aus dem Menüpunkt APK erstellen erstellt wurde .

9
lujop

fügen Sie diese Zeile zu Ihren "gradle.properties"

Android.injected.testOnly=false
8
nick lee

Wenn Sie die apk testen möchten, fügen Sie einfach die Befehlszeilenoption -t hinzu.

Beispielbefehl:

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

Dies lässt sich am einfachsten lösen, ohne auf eine ältere Gradle-Version zurückzugreifen, indem Sie die Option '-t' in den Ausführungskonfigurationen hinzufügen (für pm install).

testOnly = 'false' hatte keinerlei Auswirkungen. Der Fehler wird durch die Alpha-Version des Gradle-Plugins verursacht, durch die die Debug-APK 'zu Testzwecken' wird. Die Option -t ermöglicht die Installation eines solchen APK. Wenn Sie es in der Laufkonfiguration einstellen, wird die APK wie gewohnt automatisch installiert.

3
3c71

Ich sehe die akzeptierte Antwort, aber Sie müssen nicht wirklich die APK drücken und dann den Befehl auf Adb Shell Direct Adb Install mit -t Flag ausführen, das tatsächlich funktioniert

adb install -t "Pfad zur apk in Ihrem Computer"

einen Screenshot als Referenz beifügen  enter image description here

3
amIT

Keiner der vorherigen Beiträge hat mein Problem gelöst. Folgendes passiert mit mir:
Normalerweise lade ich die App aus Android Studio, indem ich auf die Schaltfläche "Ausführen" klicke. Wenn Sie dies tun, würde Android eine App erstellen, die für das Debuggen, aber nicht für die Installation geeignet ist. Wenn Sie versuchen, mithilfe von zu installieren:

adb install -r yourapk

sie erhalten eine Nachricht, die besagt:

Fehler [INSTALL_FAILED_TEST_ONLY]

In diesem Fall müssen Sie das APK neu erstellen, indem Sie zuerst den Build bereinigen und dann Build-> Build APK auswählen. Siehe das Bild unten:

build Android apk

Dieses APK kann entweder mit dem Befehl adb install oder mit anderen Methoden installiert werden

Hoffe das hilft

David

2
us_david

das funktioniert bei mir adb install -t myapk.apk

2
Vardaan Sharma

Ich weiß nicht, ob es für jemanden nützlich ist oder nicht, aber ich habe diese Fehlermeldung erhalten, als ich versehentlich versuchte, mein Projekt mit der Testgradle-Plugin-Version ('gradle:2.4.0-alpha5') in einer stabilen Android Studio-Version (2.3, nicht im 2.4 preview 5 Version, die ich vorher heruntergeladen und installiert habe).

Als ich meinen Fehler bemerkte, startete ich eine Vorschau der Android Studio-Version und baute und installierte mein Projekt ohne Probleme.

Mein Befund ist wie folgt. Wenn ich mit der Android Studio-Benutzeroberfläche kompiliere und das APK erstellt habe, kann ich das nicht einfach 

adb install <xxx.apk>

Es wird Failure [INSTALL_FAILED_TEST_ONLY] generiert.

Ich muss es mit dem Gradle kompilieren, d. H. ./gradlew app:assembleRelease. Dann nur die generierte apk, dann kann sie nur installiert werden.

Dies liegt daran, dass das Android Studio UI Compile nur Test-APK für ein bestimmtes Gerät generiert, während der Befehl ./gradlew app:assembleRelease die eigentliche APK-Generation ist, die auf allen Geräten installiert werden soll (und in den Playstore hochladen).

1
Elye

Was für mich funktioniert hat, ist, Refresh all Gradle projects von der Gradle-Symbolleiste aus dem rechten Menü auszuführen.

PFB der Screenshot von Android Studio. 

  1. Wählen Sie im rechten Menü die Option Gradle aus.
  2. Wählen Sie das Symbol Refresh

Dies hat das Problem für mich gelöst.

 Screenshot from Android Studio

1
sunil

Obwohl ich sicher bin, dass die Antwort von Saurabh für die meisten anderen Menschen funktionieren wird, wollte ich unbedingt die zusätzlichen Schritte identifizieren, die ich unternehmen musste, um meinen apk installieren zu lassen.

Ich habe versucht, mit folgendem Ergebnis auf das Gerät zu schieben:

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

Nachdem ich mich umgesehen hatte, um die RW-Berechtigungen des Dateisystems zu ändern, wurden folgende Befehle ausgeführt:

? adb Shell
255|[email protected]:/ $ su
[email protected]:/ # mount -o remount,rw /
mount -o remount,rw /

Das habe ich bekommen, als ich noch einmal versucht habe, Push zu machen:

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

Ich konnte auf die SD-Karte drücken:

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

An diesem Punkt konnte ich Saurabhs Befehl ausführen:

[email protected]:/ # 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

Erstellen Sie Ihre Distribution .apk wie folgt aus Android Studio

Build -> Build Apk (s) (für unsigniertes Build) Build -> Generierte signierte APK (für signiertes Build)

Diese Option baut die APK mit Android auf: testOnly = "false", mit der Sie die APK vom Gerät aus in das Gerät installieren können.

adb installiere deinBuilT.apk

1
Abhinandan

Für mich hat es funktioniert, die Gradle-Task 'clean' auszuführen (unter: app, im Gradle-Fenster, normalerweise rechts) und das Projekt erneut ausführen.

1
jbourne

Ich habe ein externes Projekt mit mehreren apk ausprobiert.

Der Befehl von Studio sah aus 

adb install-multiple -r ....

Lösung - 

  • konsole auswählen 
  • befehl mit -t
0
Stoyan Mihaylov

entfernen Sie zuerst die instabile Version:

adb uninstall Problempaketname

; und dann die apk neu installieren.

0
Pnemonic

Wie in Dokumentation erwähnt :

Android Studio fügt dieses Attribut automatisch hinzu, wenn Sie auf Ausführen klicken

Damit Sie Ihre apk mit adb install <path to apk file> installieren können, müssen Sie build vom Terminal aus zusammenstellen: ./gradlew assembleDebug und mit adb installieren. Oder führen Sie einfach ./gradlew installDebug aus, um gleichzeitig auf dem Gerät zu bauen und zu installieren.

0
ultraon