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?
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
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.
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
Fügen Sie wie im folgenden Screenshot -t
install hinzu:
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'
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
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
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 .
fügen Sie diese Zeile zu Ihren "gradle.properties"
Android.injected.testOnly=false
Wenn Sie die apk testen möchten, fügen Sie einfach die Befehlszeilenoption -t
hinzu.
Beispielbefehl:
adb install -t .\app-debug.apk
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.
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:
Dieses APK kann entweder mit dem Befehl adb install oder mit anderen Methoden installiert werden
Hoffe das hilft
David
das funktioniert bei mir adb install -t myapk.apk
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).
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
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
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.
Ich habe ein externes Projekt mit mehreren apk ausprobiert.
Der Befehl von Studio sah aus
adb install-multiple -r ....
Lösung -
-t
entfernen Sie zuerst die instabile Version:
adb uninstall
Problempaketname
; und dann die apk neu installieren.
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.