ADB Kurulumu INSTALL_FAILED_TEST_ONLY İle Başarısız Oluyor


202

Cihazıma bir apk yüklerken sorun yaşıyorum.

adb install <.apk>

Yukarıdaki komutu kullanmak aşağıdakileri döndürür:

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

Bu soruna neyin sebep olabileceği hakkında bir fikrin var mı?

Cihazı kesinlikle tanır. Apk ile ilgili bir sorun olabilir mi?

Yanıtlar:


276

Sizin gibi görünüyor sizin değiştirmeniz gerekir AndroidManifest.xml
Değiştir android:testOnly="true"için android:testOnly="false"ya da bu özellik kaldırın.

Eğer özelliğini tutmak istiyorsanız android:testOnlyolarak truekullanabilirsiniz pm installile komutu -tseçeneği, ama sen gerekebilir pushönce cihaza Apk'nizin.

$ 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

Aynı sorunu yeniden üretebildim ve yukarıdaki sorunu çözdüm.

APK'nız cihazın dışındaysa (masaüstünüzde), aşağıdaki komut bunu yapar:

$ adb install -t hello.apk

63
Adb push ve pm install komutuna gerek yoktur, adb install komutundan hemen sonra -t anahtarını belirtebilirsiniz: adb install -t -r package.apk
marioc64

apk itmek gerek yok adb install -t çalışır ekleyerek çalışıyor, tam komut için aşağıdaki cevabımı kontrol edin.
amIT

adb push bin/hello.apk /tmp/benim için çalışmıyor, adb push ./debug.apk /sdcard/temp/debug.apkçalıştı
HendraWD

adb install -t app/build/outputs/apk/usUnitedStates/debug/app-usUnited-debug.apkbenim için çalıştı.
Sulav Timsina

Teşekkürler. Bu benim sorunumu çözdü. Uygulamam bir sistem uygulamasıydı. Böylece -f gerekliydi. -f: Install package on the internal system memory.
Julian

95

Benzer bir sorun yaşadım Android Studio 3.0.0 Beta 7ve oyun mağazasında artık yayınlayamadım.

Burada belirtildiği gibi: https://developer.android.com/studio/run/index.html

Not: Çalıştır düğmesi testOnly = "true" değerine sahip bir APK oluşturur; bu, APK'nın yalnızca adb (Android Studio'nun kullandığı) aracılığıyla yüklenebileceği anlamına gelir. Kullanıcıların adb olmadan yükleyebilecekleri hata ayıklanabilir bir APK istiyorsanız, hata ayıklama varyantınızı seçin ve Oluştur> APK Oluştur'u tıklayın.

Aynı şey sürüm oluşturmak için de geçerlidir, mağazaya gönderebileceğiniz test edilemeyen bir sürüm apk'sine Android Studio 3gitmeniz gerekir Build > Build APK(s).


6
Şu anda (Ekim / Kasım 2017) bunun buraya gelen çoğu kişi için doğru cevap olduğundan şüpheleniyorum. AS 3'ten önce, "Run" tarafından üretilen APK AS dışında bile kurulabilirdi, hayır değil.
noamtm

güncelleme var ve biraz daha tweak var .. anlamaya biraz zaman aldı: /
ruben

61

-tAşağıdaki ekran görüntüsünde olduğu gibi yükleme bayrağını ekleyin :

cevap kırmızı kutuda


Derlediğim örnek proje 'com.android.tools.build:gradle:2.4.0-alpha7' kullanıyor ve kararlı bir sürümle derlemiyor, sadece -t eklenmesi sorunu benim için çözdü.
BubbaGum

7
Lütfen ne yaptığını açıklayın -t.
rmtheis

3
adb yardımında, -t ile yükleme test paketleri izin anlamına gelir göreceksiniz
xiaoyee

ekranı, modül açılır menüsünde Yapılandırmaları Düzenle'yi tıklatarak başlatılır - Yap ve Çalıştır, IDE'nin üstündeki Hata Ayıkla düğmeleri arasında: developer.android.com/studio/run/rundebugconfig.html
Gene Bo

56

Benim durumumda bu hata kararsız gradle sürümündeydi. Sadece sabit bir sürüm kullanın (alfa değil, beta bile değil). Ve benim için düzeltildi


1
Günü kurtardım! Gradle sürümü 2.4.0-alpha3'ten 2.3.0'a değiştirildi
Reaz Murshed

1
Kanayan kenara yapışmanın bedeli ... Teşekkürler!
Ryan R

Herkes android: testOnly = "true" ayarının kararsız sınıf sürümleri için de düzelteceğini doğrulayabilir mi?
GPS

43

Tüm gün arama ve göz atma işleminden sonra, tek çalışma

android.injected.testOnly=false

için gradle.properties dosyası


28

Elisey'e katılıyorum. Aynı hatayı 2.4 önizlemede açtıktan sonra aynı projeyi android studio 2.3'te açtıktan sonra da aynı hatayı aldım

Build.gradle dosyasındaki bu satırı değiştirerek sorunu düzeltin

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

için

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


13

bu satırı 'gradle.properties' klasörünüze ekleyin

android.injected.testOnly=false

Teşekkürler! Bu da kaşık koşucusu sorununu çözecektir!
Basim Şerif

11

Önceki yazının hiçbiri sorunumu çözmedi. İşte benimle olan şu:
Ben normalde "Çalıştır" düğmesine tıklayarak android stüdyo app yükleyin. Bunu yaptığınızda, android hata ayıklama için iyi olan ancak yükleme için olmayan bir uygulama oluşturur. Kullanarak yüklemeyi denerseniz:

adb install -r yourapk

bir mesaj alacaksınız:

Hata [INSTALL_FAILED_TEST_ONLY]

Bu olduğunda, önce yapıyı temizleyerek apk'yi yeniden oluşturmanız ve ardından Oluştur-> Oluştur APK'sını seçmeniz gerekir. Aşağıdaki resme bakın:

android apk oluşturmak

Bu APK, adb install komutu veya başka herhangi bir yöntemle yüklenmeye hazır

Bu yardımcı olur umarım

David


Sen bir hayat kurtarıcısın. Sürüm derlemesinde (hatalı anahtar deposu) sorun yaşıyordum ve hata ayıklama yapılarını test edicilerime dağıtmak istedim.
drulabs

Appium kullanıyorsanız, "allowTestPackages": "true"e2e şeması yeteneklerinizi belirtmeniz gerekir .
Joshua Pinter

@JoshuaPinter allowTestPackages ":" true "ifadesini nereye koyabileceğinizi lütfen açıklar mısınız
Girish

@Girish Appium sürücü yapılandırmanıza eklediğiniz gibi config.allowTestPackages = true. Bu sadece Appium kullanarak uçtan uca testlerle ilgilidir.
Joshua Pinter

9

Benim durumumda, bir APK yükleyerek, üretim sertifikası ile imzalanmış ve bir yayın varyantı olmasına rağmen, Android stüdyosundaki run play düğmesi tarafından oluşturulmuştu. Gradle veya APK Oluştur menü seçeneğinden APK oluşturulduktan sonra sorun çözüldü.


1
Bu, Android Studio 3.0 ile olmaya başladı ve öneriniz benim için düzeltti.
Sky Kelsey

9

APK'yı test etmek istiyorsanız, -tkomut satırı seçeneğini eklemeniz yeterlidir .

Örnek komut:

adb install -t .\app-debug.apk

4

Kabul edilen cevabı görüyorum ama aslında apk'yi itmeniz ve daha sonra -b bayrağı ile adb shell doğrudan adb kurulumunda komutu çalıştırmanız gerekmez

adb install -t "ur bilgisayarında apk yolu"

referans için bir ekran görüntüsü ekleme resim açıklamasını buraya girin


3

Daha eski bir sürümüne dönmeden bunu çözmenin en kolayı, çalışma yapılandırmalarına '-t' seçeneğini eklemektir (pm kurulum için).

testOnly = 'false' değerinin hiçbir etkisi olmadı. Hata, APK'yı sadece test amacıyla hata ayıklama yapan sürüm eklentisinin alfa sürümünden kaynaklanır. -T seçeneği, bu APK'nın yüklenmesine izin verir. Çalıştırma yapılandırmasında ayarlanması, APK'yı her zamanki gibi otomatik olarak yüklemesini sağlar.



2

Herkes için yararlı olup olmayacağını bilmiyorum, ancak projemi yanlışlıkla test stüdyosu eklentisi ( 'gradle:2.4.0-alpha5') sürümü ile kararlı Android Studio sürümünde ( sürüm I'de 2.3değil ) oluşturmaya ve yüklemeye çalıştığımda bu hata mesajını 2.4 preview 5aldım indirildi ve daha önce yüklendi).

Hatamı fark ettiğimde, Android Studio sürümünü önizlemeye başladım ve projemi sorunsuz bir şekilde oluşturdu ve yükledi.


1

Saurabh'ın cevabının çoğu insan için işe yarayacağından emin olmama rağmen, apk'mi yüklemek için atmam gereken ekstra adımları tanımlamak istedim.

Aşağıdaki sonuçla cihaza itmeyi denedim:

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

Dosya sistemi RW izinlerini değiştirmek için etrafa baktıktan sonra aşağıdaki komutları yürüttüm:

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

Tekrar zorlamaya çalıştığımda bunu anladım:

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

SDCard'a geçebildim:

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

Hangi noktada Saurabh'ın emrini yerine getirebildim:

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
Bunların bir kısmının diğerleri için gerekli olmayabileceğini eklemeliyim.
2014'te

Ekstra çaba için teşekkür ederiz !.
Saurabh Meshram

1

Bulgularım aşağıdaki gibidir. Android Studio kullanıcı arayüzünü ve oluşturulan APK'yı kullanarak derlersem,

adb install <xxx.apk>

Üretecek Failure [INSTALL_FAILED_TEST_ONLY]

Yani çakıl kullanarak derlemek gerekir ./gradlew app:assembleRelease. Sonra sadece oluşturulan apk, o zaman sadece kurulabilir.

Bunun nedeni, Android Studio UI Derlemesi'nin, yalnızca belirli bir cihaz için test apk oluşturması, ./gradlew app:assembleReleasekomutun ise tüm cihaza yüklenecek gerçek apk nesli olmasıdır (ve playstore'a yükleme)


Sorunu daha iyi anlamak için medium.com/@elye.project/… ' i ifade eder .
Elye

1

Belgelerde belirtildiği gibi :

Çalıştır'ı tıkladığınızda Android Studio bu özelliği otomatik olarak ekler

Bu nedenle, apk'nizi yükleyebilmek için adb install <path to apk file>terminalden derlemeyi birleştirmeniz ./gradlew assembleDebugve adb ile yüklemeniz gerekir. Ya da sadece ./gradlew installDebugaynı anda cihaz kurmak ve yüklemek için çalıştırın .


1

Benim için çalıştı 'temiz' gradle görevi yürütmek (app: altında, genellikle sağda bulunan Gradle bölmesinde) ve projeyi tekrar çalıştırın.


1

Android Studio'dan dağıtımınızı .apk oluşturun

Yapı -> yapı apk ( imzasız yapı için) yapı -> imzalı oluşturmak APK (imzalı yapı için)

Bu seçenek APK'yı android ile oluşturur: APK'yı commond tarafından cihaza hızlı bir şekilde yüklemenizi sağlayan testOnly = "false" seçeneği.

adb yourBuilT.apk yükleyin


1

Ne benim için çalıştı performans Refresh all Gradle projectsgelen Gradlesağ menüden araç çubuğu.

Android Studio ekran görüntüsü PFB.

  1. Seç Gradlesağ menüden araç çubuğu.
  2. RefreshSimgeyi seçin

Bu benim için sorunu çözdü.

Android Studio'dan ekran görüntüsü


Teşekkürler dostum. Android gradle 4'e yükselttikten sonra başladı. Uygulamayı doğrudan android studio'dan dağıtmak iyi çalışıyor, ancak terminali (adb install vb.) Kullanıyorsanız işe yaramadı.
user3193413

@ user3193413 Mesajın iyi olduğunu duymak güzeldi
sunil

0

Birden fazla apk ile harici projeyi denedim.

Studio'dan komut,

adb install-multiple -r ....

Çözüm -

  • konsol seç
  • aste komutu ile -t

0

önce kararsız sürümü kaldırın:

adb uninstall sorunlu-paket-adı

; ve sonra apk'yi yeniden yükleyin.


0

Android 3.6.2.

İnşa >> İnşa / Paket apk >> İnşa apk

İyi çalışıyor.resim açıklamasını buraya girin


0

Benim durumumda, Android Studio 4.0 kullanarak aşağıdaki sorunu çözdüm;

'Gradle.properties' dosyasına ekleyin;

android.injected.testOnly=false 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.