Instalasi ADB Gagal Dengan INSTALL_FAILED_TEST_ONLY


201

Saya mengalami masalah dalam menginstal apk ke perangkat saya.

adb install <.apk>

Menggunakan perintah di atas mengembalikan yang berikut:

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

Adakah yang tahu apa yang menyebabkan masalah ini?

Itu pasti mengenali perangkat. Mungkinkah itu masalah dengan apk?

Jawaban:


274

Sepertinya Anda perlu mengubah AndroidManifest.xml
Ubah android:testOnly="true"untuk android:testOnly="false"atau menghapus atribut ini.

Jika Anda ingin mempertahankan atribut android:testOnlykarena trueAnda dapat menggunakan pm installperintah dengan -topsi, tetapi Anda mungkin perlu pushapk ke perangkat terlebih dahulu.

$ 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

Saya bisa mereproduksi masalah yang sama dan di atas menyelesaikannya.

Jika APK Anda berada di luar perangkat (pada desktop Anda), maka perintah di bawah ini akan melakukannya:

$ adb install -t hello.apk

63
Anda tidak perlu adb push dan install pm, Anda dapat menentukan -t switch hanya setelah perintah install adb: adb install -t -r package.apk
marioc64

tidak perlu menekan apk lagi menambahkan -t berfungsi di adb install berfungsi dengan baik, untuk perintah lengkap periksa jawaban saya di bawah ini.
amit

adb push bin/hello.apk /tmp/tidak bekerja untuk saya, adb push ./debug.apk /sdcard/temp/debug.apkberhasil
HendraWD

adb install -t app/build/outputs/apk/usUnitedStates/debug/app-usUnited-debug.apkbekerja untukku.
Sulav Timsina

Terima kasih. Itu memecahkan masalah saya. Aplikasi saya adalah aplikasi sistem. Jadi -f diperlukan. -f: Install package on the internal system memory.
Julian

95

Saya memiliki masalah yang sama dengan Android Studio 3.0.0 Beta 7dan tidak dapat mempublikasikan lagi ke play store.

Seperti yang dinyatakan di sini: https://developer.android.com/studio/run/index.html

Catatan: Tombol Run membangun APK dengan testOnly = "true", yang berarti APK hanya dapat diinstal melalui adb (yang digunakan Android Studio). Jika Anda ingin APK yang dapat di-debuggable yang dapat dipasang orang tanpa adb, pilih varian debug Anda dan klik Build> Build APK.

Hal yang sama berlaku untuk rilis build, dengan Android Studio 3Anda harus pergi Build > Build APK(s)untuk memiliki apk rilis yang tidak dapat diuji yang dapat Anda kirim ke toko.


6
Saya menduga bahwa sekarang (Oktober / November 2017) ini adalah jawaban yang benar bagi kebanyakan orang yang datang ke sini. Sebelum AS 3, APK yang diproduksi oleh "Run" dapat diinstal bahkan di luar AS, bukan itu.
noamtm

ada pembaruan dan ada beberapa lagi tweak .. butuh beberapa saat untuk mencari tahu: /
ruben

61

Tambahkan -tbendera instal, seperti pada tangkapan layar di bawah ini:

jawabannya ada di kotak merah


Proyek sampel yang saya kompilasi menggunakan 'com.android.tools.build:gradle:.4.0-alpha7' dan tidak mengkompilasi dengan versi stabil, hanya menambahkan -t seperti yang disebutkan memecahkan masalah untuk saya.
BubbaGum

7
Tolong jelaskan apa yang -tterjadi.
rmtheis

3
dalam bantuan adb, Anda akan melihat menginstal dengan -t berarti mengizinkan paket pengujian
xiaoyee

layar diluncurkan melalui mengklik Edit Konfigurasi pada menu dropdown modul - antara tombol Make and Run, Debug di atas IDE: developer.android.com/studio/run/rundebugconfig.html
Gene Bo

56

Dalam kasus saya kesalahan ini dalam versi gradle tidak stabil. Cukup gunakan versi stabil gradle (bukan alpha, bahkan beta). Dan itu sudah diperbaiki untuk saya


1
Selamat hari itu! Mengubah versi gradle dari 2.4.0-alpha3 ke 2.3.0
Reaz Murshed

1
Harga menempel ke tepi pendarahan ... Terima kasih!
Ryan R

Adakah yang bisa mengonfirmasi pengaturan Android: testOnly = "true" akan memperbaikinya juga untuk versi gradle yang tidak stabil?
GPS

43

Setelah mencari dan menelusuri sepanjang hari, satu-satunya yang berfungsi adalah menambahkan

android.injected.testOnly=false

ke file gradle.properties


28

Saya setuju dengan Elisey. Saya mendapat kesalahan yang sama setelah membuka proyek saya di pratinjau 2.4 dan kemudian membuka proyek yang sama di android studio 2.3

Memperbaiki masalah dengan mengubah baris ini di build.gradle dari

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

untuk

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


13

tambahkan baris ini ke 'gradle.properties' Anda

android.injected.testOnly=false

Terima kasih! Ini juga akan memperbaiki masalah pelari sendok!
Basim Sherif

11

Tidak ada pos sebelumnya yang memecahkan masalah saya. Inilah yang terjadi dengan saya:
Saya biasanya memuat aplikasi dari studio android dengan mengklik tombol "Run". Ketika Anda melakukan ini, android akan membuat aplikasi yang bagus untuk debug tetapi tidak untuk instalasi. Jika Anda mencoba menginstal menggunakan:

adb instal -r yourapk

Anda akan mendapatkan pesan yang mengatakan:

Gagal [INSTALL_FAILED_TEST_ONLY]

Ketika ini terjadi, Anda harus membangun kembali apk dengan terlebih dahulu membersihkan build, lalu pilih Build-> Build APK. Lihat gambar di bawah:

membangun apk Android

APK ini siap diinstal baik melalui perintah install adb atau metode lainnya

Semoga ini membantu

David


Anda adalah penyelamat. Saya mengalami masalah dengan rilis rilis (rusak keystore) dan ingin mendistribusikan debug membangun ke penguji saya.
drulab

Jika Anda menggunakan appium, Anda perlu menentukan "allowTestPackages": "true"kemampuan skema e2e Anda.
Joshua Pinter

9

Dalam kasus saya adalah dengan mengunggah APK, yang meskipun ditandatangani dengan sertifikat produksi dan merupakan varian rilis, dihasilkan oleh tombol run play dari Android studio. Masalah terpecahkan setelah membuat APK dari Gradle atau dari opsi menu Build APK.


1
Ini mulai terjadi dengan Android Studio 3.0, dan saran Anda memperbaikinya untuk saya.
Sky Kelsey

9

Jika Anda ingin menguji apk, cukup tambahkan -topsi baris perintah.

Contoh perintah:

adb install -t .\app-debug.apk

4

Saya melihat jawaban yang diterima tetapi Anda tidak harus benar-benar menekan apk dan kemudian menjalankan perintah pada adb shell langsung menginstal adb dengan -t flag benar-benar berfungsi

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

melampirkan tangkapan layar untuk referensi masukkan deskripsi gambar di sini


3

Cara termudah untuk menyelesaikan ini, tanpa kembali ke versi gradle yang lebih lama adalah dengan menambahkan opsi '-t' dalam konfigurasi run (untuk pm install).

testOnly = 'false' tidak berpengaruh apa pun. Kesalahan ini disebabkan oleh versi alfa dari plugin gradle yang membuat debug APK 'untuk tujuan pengujian saja'. Opsi -t memungkinkan APK tersebut diinstal. Mengaturnya dalam konfigurasi yang berjalan membuatnya APK secara otomatis menginstal Anda seperti biasa.



2

Saya tidak tahu apakah itu akan berguna bagi siapa pun atau tidak, tapi saya mendapat pesan kesalahan ini, ketika saya tidak sengaja mencoba membangun dan menginstal proyek saya dengan plugin test gradle ( 'gradle:2.4.0-alpha5') versi dalam versi Android Studio yang stabil ( 2.3, tidak dalam2.4 preview 5 versi I telah diunduh dan diinstal sebelumnya).

Ketika saya menyadari kesalahan saya, saya meluncurkan pratinjau versi Android Studio dan itu membangun dan menginstal proyek saya tanpa masalah.


1

Meskipun saya yakin jawaban Saurabh akan bekerja untuk sebagian besar orang lain, saya memang ingin mengidentifikasi langkah-langkah tambahan yang harus saya ambil untuk menginstal apk saya.

Saya mencoba mendorong ke perangkat dengan hasil berikut:

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

Setelah melihat sekeliling untuk mengubah izin filesystem RW saya akhirnya menjalankan perintah berikut:

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

Saya mendapatkan ini ketika saya mencoba untuk mendorong lagi:

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

Saya bisa mendorong ke sdcard:

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

Pada titik mana saya bisa menjalankan perintah 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
Saya harus menambahkan bahwa beberapa di antaranya mungkin tidak diperlukan untuk yang lain.
evve

Hargai upaya ekstra !.
Saurabh Meshram

1

Temuan saya adalah seperti di bawah ini. Jika saya kompilasi menggunakan Android Studio UI, dan APK yang dihasilkan, saya tidak bisa adil

adb install <xxx.apk>

Itu akan menghasilkan Failure [INSTALL_FAILED_TEST_ONLY]

Saya perlu mengkompilasinya menggunakan yaitu gradle ./gradlew app:assembleRelease. Maka hanya apk yang dihasilkan, maka itu hanya dapat diinstal.

Ini karena Android Studio UI Compile, hanya menghasilkan apk pengujian untuk perangkat tertentu, sedangkan ./gradlew app:assembleReleaseperintah adalah generasi apk sebenarnya yang harus diinstal pada semua perangkat (dan mengunggah ke playstore)


Mengacu pada medium.com/@elye.project/… untuk memahami lebih baik masalah ini.
Elye

1

Sebagaimana disebutkan dalam dokumentasi :

Android Studio secara otomatis menambahkan atribut ini ketika Anda mengklik Jalankan

Jadi, untuk dapat menginstal apk adb install <path to apk file>Anda dengan Anda harus merakit build from terminal: ./gradlew assembleDebugdan instal dengan adb. Atau jalankan ./gradlew installDebuguntuk membangun dan menginstal pada perangkat secara bersamaan.


1

Bagi saya itu telah berhasil menjalankan tugas gradle 'bersih' (di bawah: aplikasi, di panel Gradle, biasanya terletak di sebelah kanan) dan menjalankan lagi proyek.


1

Bangun distribusi .apk Anda dari Android Studio sebagai berikut

Build -> Build Apk ( untuk build yang tidak ditandatangani) Build -> Generate Signed APK (untuk build yang ditandatangani)

Opsi ini membangun APK dengan android: opsi testOnly = "false" yang memungkinkan Anda untuk menginstal APK secara ekspansif ke perangkat oleh commond.

adb instal yourBuilT.apk


1

Apa yang berhasil untuk saya lakukan Refresh all Gradle projectsdari Gradlebilah alat dari menu kanan.

PFB tangkapan layar dari Android Studio.

  1. Pilih Gradlebilah alat dari menu kanan.
  2. Pilih Refreshikonnya

Ini menyelesaikan masalah bagi saya.

Tangkapan layar dari Android Studio


Terima kasih sobat. Itu dimulai setelah memutakhirkan android gradle ke 4. Menyebarkan aplikasi langsung dari android studio berfungsi dengan baik tetapi tidak jika menggunakan terminal (adb instal dll.) Setelah menyegarkan gradle seperti yang Anda sebutkan itu berfungsi.
user3193413

@ user3193413 Senang mendengar posting itu membantu
sunil

0

Saya mencoba proyek eksternal, dengan beberapa apk.

Perintah dari Studio, tampak seperti

adb install-multiple -r ....

Solusi -

  • pilih konsol
  • perintah penuh dengan -t

0

pertama-tama hapus versi yang tidak stabil:

adb uninstall nama-paket-bermasalah

; lalu instal ulang apk.


0

Android 3.6.2.

Build >> Build / Bundle apk >> Build apk

Ini bekerja dengan baik.masukkan deskripsi gambar di sini


0

Dalam kasus saya, menggunakan Android Studio 4.0, di bawah ini menyelesaikan masalah;

Tambahkan ke file 'gradle.properties';

android.injected.testOnly=false 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.