GitHub'dan bazı projeleri test ederek Android Studio ile oynuyorum ve apk'yi taklit etmeye çalıştığımda bir emülatör seçmeme izin vermiyor.
Bana şunu söylüyor:
Cihaz x86'yı destekler, ancak APK yalnızca armeabi-v7a'yı destekler
Bunu neden yapar?
GitHub'dan bazı projeleri test ederek Android Studio ile oynuyorum ve apk'yi taklit etmeye çalıştığımda bir emülatör seçmeme izin vermiyor.
Bana şunu söylüyor:
Cihaz x86'yı destekler, ancak APK yalnızca armeabi-v7a'yı destekler
Bunu neden yapar?
Yanıtlar:
Ben aynı problem vardı, ben ödeme build.gradle gelen modül: Uygulamayı . Böyle bir yapılandırma olduğu ortaya çıktı:
ndk {
abiFilters "armeabi-v7a", "x86"
}
her şeyi yorumladığımda, her şey yolunda gitti.
React Native Android projesiyle başa çıkmaya çalışıyordum .
USB hata ayıklamasını kapatın ve donanım aygıtında tekrar açın.
Allow computer to connect to this devicekomut istemi ilk seferde değil, ikinci seferde görüntüleniyor.
Linux'ta: Dosya> Önbelleği Geçersiz Kıl / Telefonda Yeniden Başlat: Bunun yerine, bu cihazı şarj et, Fotoğrafları aktar (PTP) olarak değiştir
Camera (PTP)etmek Media Device (MTP)ve çok çalışıyor. Teşekkür ederim!
Benzer sorunu yaşadım ve aşağıdaki gibi "abiFilters" listesine "x86" değerini ekleyerek çözdüm -
[Açık build.gradle (Modül: app) dosyası] ve "için arama NDK içinde" deafultSection ve buna "x86" ekleyin!
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
Umarım yardımcı olur!!!
armeabiSDK 19 ve üstünü hedefliyorsanız muhtemelen bırakmalısınız . Android 4.4'ten itibaren onu desteklemiyor
Benim durumumda Linux makinesi adb devicesgösterdi
List of devices attached
44b194f5 no permissions
Sonra adb sunucusunu yeniden başlattı
sudo adb kill-server
ve sonra
sudo adb start-server
ardından cihazınızı bağlayın Hata Ayıklamayı açın ve yazın
adb devices
List of devices attached
44b194f5 device
Sonunda cihaz üzerinde çalışabildim
Benim durumumda uygulamam bazı yerel kitaplıkları kullanıyor. Her platform, ilgili kitaplıkların oluşturulmasını gerektirir.
Yani x86 (veya başka herhangi bir) platformunun yerel kitaplığı oluşturulmaz. Bir yere bir abifilter eklemeniz gerekir:
Abi filtrelerinin belirtilebileceği birkaç yer vardır:
Application.mk, ihtiyacınız olan platformu şu şekilde ekleyin:
APP_ABI := armeabi armeabi-v7a x86
build.gradle
abiFilters'ı bulun ve ihtiyacınız olan platformu şu şekilde ekleyin:
abiFilters "armeabi","armeabi-v7a","x86"
Sen gerek yeniden Cihazınızı ve deneyin açmak / kapatmak geliştirici seçenekleri.
Geliştirici seçeneklerini ve hata ayıklamayı etkinleştirme konusuna bakın.
Cihaz x86'yı destekler, ancak APK yalnızca armeabi-v7a'yı destekler)
x86Öykünücüde bir görüntü kullanmışsınız gibi görünüyor .
Ayrı bir tane oluşturun. Gerekirse, kol cihazlarını bulmak için "diğer resimler" sekmesini seçin.
Veya gerçek bir cihazda çalıştırın. Listelediğiniz repo, bir Raspberry Pi 3 / ODroid üzerinde çalışacak sanırım.
Onaylayabiliyorum, Geliştirici Seçeneklerinde USB hata ayıklamayı kapatıp açmak sorunu çözdü. Belki Android Studio'daki "Dağıtım Hedefini Seç" penceresini iptal edin ve USB hata ayıklamasını açtıktan sonra uygulamayı tekrar çalıştırmayı deneyin.
Benim için kablo seçeneğini değiştirmem işe yaradı.
-> Charge Only.
İçin
-> Transfer file.
Sadece cihaza gidin ve Settings >> Developer Options >> Restore Default SettingsetkinleştirinUSB debugging
Aşağıdaki kod benim için çalıştı:
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
Ubuntu kullanıyorsanız:
adb kill sunucusu
adb başlangıç sunucusu
Windows işletim sisteminde benim için çalışıyor.
X86 işlemciyi kullanarak bir AVD çalıştırmak, ARM emülatörünü kullanmaktan 10 kat daha hızlıdır, ancak çoğu zaman yalnızca ARM için APK'nızı derliyorsunuz. Bir x86 AVD kullanarak daha hızlı öykünme çalışması yapmak için aşağıdakileri yapmam gerekiyordu (bir Cocos2d-x projesi için):
app / jni / Android.mk
APP_ABI := armeabi-v7a:x86
gradle.properties
PROP_APP_ABI=armeabi-v7a:x86
app / build.gradle
android {
...
defaultConfig {
...
ndk {
abiFilters = []
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
}
}
}
Cihazı yeniden başlatmak benim için sorunu çözdü (React-native)
Android Studio'yu güncelledikten sonra başıma geldi. Benim durumumda, yapı ayarının otomatik olarak x86Debug-x86'ya yapılandırılmaması nedeniyle oldu. Yapım >> Oluşturma Varyantını Seç >> açarak değiştirin. Yapı varyantı seçeneğini armeabi-v7a'dan x86Debug-x86'ya veya emülatörde ihtiyacınız olan her şeye değiştirin.
Güvenlik Seçeneklerinden Bilinmeyen Kaynakları etkinleştirmeyi deneyin . Benim için çalıştı.
bunu görüyorum
Derlemeleriniz için CMake kullanıyorsanız, \ proj.android \ gradle.properties dosyasını kontrol edin ve PROP_APP_ABI'yi x86 için derlemeleri içerecek şekilde güncelleyin veya alternatif olarak sadece armeabi-v7a veya arm64-v8a Android'i kullanabilirsiniz. Görüntüler.
Örnek: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86
Cmake kullanmıyorsanız, oradaki ABI ayarını değiştirmeniz gerekirse diye \ proj.android \ app \ jni \ Application.mk'ye bakın.