Apa alasan dari error “Perangkat mendukung x86, tetapi APK hanya mendukung armeabi-v7a”


90

Saya bermain-main dengan Android Studio dengan menguji beberapa proyek dari GitHub dan ketika saya mencoba untuk meniru apk, saya tidak dapat memilih emulator.

Ini memberitahu saya:

Perangkat mendukung x86, tetapi APK hanya mendukung armeabi-v7a

Mengapa melakukan ini?


AVD apa yang Anda gunakan? Gambar Sistem Apa? Proyek GitHub apa?
OneCricketeer

Dengan kata lain, gambar Intel x86 tidak akan menjalankan kode ARM.
OneCricketeer


Saya ingin menggunakan Nexus 10 yang menjalankan Android 5.1
Alexander Ibarra

Oke, dan apakah Anda menggunakan image sistem ARM eabi v7 atau image Intel Atom x86? Periksa pengelola SDK Anda apa yang telah Anda instal.
OneCricketeer

Jawaban:


85

Saya memiliki masalah yang sama, saya membayar build.gradle dari module: app . Ternyata ada konfigurasi seperti itu:

    ndk {
        abiFilters "armeabi-v7a", "x86"
    }

ketika saya berkomentar habis-habisan, semuanya bekerja dengan baik.

Saya mencoba menangani proyek React Native Android .


1
Saya pikir yang Anda maksud adalah build.gradle;)
Ryan James

2
Saya memiliki masalah yang sama dan bagi saya "x86" hilang begitu saja
thomas

1
Ini berhasil untuk saya - namun yang harus saya lakukan hanyalah mengizinkan debug pada perangkat saya yang sebenarnya dan saya dapat membatalkan komentar baris ini lagi.
Boomer Rogers

Bagian mana yang harus saya masukkan ndk?
Ömrüm Çetin

Tidak berfungsi untuk saya di java / kotlin, ia membangun tetapi aplikasi mogok.
mozilla_firefox

77

Matikan USB debugging dan hidupkan kembali perangkat keras.


10
Komentar-komentar itu biasanya saya downvote, tetapi sebenarnya, itu berhasil!
Ahmed Hegazy

2
Ini berfungsi karena Allow computer to connect to this deviceprompt tidak ditampilkan pertama kali, tetapi ditampilkan untuk kedua kalinya.
Kyle Clegg

Ini bekerja pada komputer yang saya beri tanda "ingat untuk komputer ini" ketika saya memulai proyek baru dari GitHub.
Z. Bagley

Begitu. Setelah menambahkan arsitektur prosesor baru ke filter ABI - studio berhenti mengenali perangkat. Tip ini membantu saya menyelesaikan masalah. !!
Vetalll

Bagi saya ini terjadi di Emulator
Akhil Surapuram

41

Di Android Studio, pilih menu Build ,

masukkan deskripsi gambar di sini

lalu klik Select Build Variant ... dan di jendela 'Build Variants' pilih x86Debug (atau rilis)

masukkan deskripsi gambar di sini

PS: Saya menggunakan Android Studio 2.3 di Mac


Ini bekerja dengan sempurna - pengaturan gradle saya menentukan build ARM dan x86, tetapi saya harus menginstruksikan Android Studio untuk membangun varian x86 sebagai lawan dari varian ARM (kemungkinan untuk iOS). Terima kasih!
jevon

Perhatikan bahwa Anda harus memilih proyek, atau opsi untuk melakukannya akan berwarna abu-abu. Saya rasa ada beberapa kondisi lain yang dapat membuatnya menjadi abu-abu - Anda mungkin perlu Make Clean dan membangun kembali.
Dronz

16

Di Linux: File> Invalidate Cache / Restart On phone: Alih-alih Isi daya perangkat ini, ubah ke Transfer foto (PTP)


1
Tak satu pun dari jawaban di atas berhasil. Ini berhasil. Terima kasih banyak.
thedarkpassenger

Saya berubah dari Camera (PTP)menjadi Media Device (MTP)dan berhasil juga. Terima kasih!
Konayuki

11

Saya mengalami masalah serupa dan saya telah mengatasinya dengan menambahkan nilai "x86" ke daftar "abiFilters" seperti di bawah -

[Buka file build.gradle (Module: app)] dan cari " ndk " di deafultSection dan tambahkan "x86" ke dalamnya!

ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }

Semoga membantu !!!


1
Anda mungkin harus membatalkannya armeabijika menargetkan SDK 19 ke atas. Android sendiri tidak mendukungnya mulai 4.4
mradzinski

9

Dalam kasus saya adb devicesmenunjukkan mesin Linux

List of devices attached 
44b194f5    no permissions

Kemudian restart server adb

sudo adb kill-server

lalu

sudo adb start-server

kemudian hubungkan perangkat Anda, aktifkan Debugging dan ketik

adb devices
List of devices attached 
44b194f5    device

Akhirnya bisa dijalankan di perangkat


7

Dalam kasus saya, aplikasi saya menggunakan beberapa perpustakaan asli. Setiap platform membutuhkan lib yang sesuai untuk dibangun.

Jadi lib asli dari platform x86 (atau lainnya) tidak dibuat. Anda harus menambahkan abifilter di suatu tempat:

Ada beberapa tempat di mana filter abi dapat ditentukan:

  • Application.mk tambahkan platform yang Anda butuhkan seperti ini:

    APP_ABI := armeabi armeabi-v7a x86
    
  • build.gradle

    temukan abiFilters, dan tambahkan platform yang Anda butuhkan seperti ini:

    abiFilters   "armeabi","armeabi-v7a","x86"
    


6

Perangkat mendukung x86, tetapi APK hanya mendukung armeabi-v7a)

Sepertinya Anda menggunakan x86gambar di emulator.

Buat yang terpisah. Pilih tab "gambar lain" untuk menemukan perangkat lengan, jika perlu.

Atau, jalankan di perangkat sebenarnya. Repo yang Anda daftarkan dimaksudkan untuk berjalan di Raspberry Pi 3 / ODroid, saya kira.


6

Dapat mengonfirmasi, mengaktifkan / menonaktifkan debugging USB di Opsi Pengembang menyelesaikan masalah. Mungkin bahkan membatalkan jendela "Select Deployment Target" di Android Studio dan mencoba menjalankan aplikasi lagi setelah mengaktifkan USB debugging.


5

Bagi saya itu berhasil saya mengubah opsi kabel dari

-> Charge Only. 

Untuk

-> Transfer file.

4

Cukup buka perangkat Settings >> Developer Options >> Restore Default Settingslalu aktifkanUSB debugging


3

Kode di bawah berfungsi untuk saya:

ndk {
     abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}

2

Di perangkat fisik saya, saya mulai mendapatkan ini. Perbaikannya adalah masuk ke Pengaturan Pengembang dan matikan dan debugging USB.


2

Jika Anda menggunakan Ubuntu:

  1. pastikan usb debugging AKTIF
  2. periksa koneksi kabel Anda
  3. pada bilah notifikasi, periksa notifikasi sistem android dan sentuh untuk mengubah status pengisian daya ke transfer file
  4. sekarang buka terminal dan ketik: adb devices setelah menjalankan perintah ini adb restart dan perangkat Anda ditampilkan dalam daftar


0

Uji kode Anda di ponsel asli. Jika Anda masih memiliki masalah yang sama, impor kode Anda lagi dan sebelum ini Anda harus mengupdate SDK dan membuat emulator baru dengan image sistem ARM.


0

Sering kali ini berarti Anda belum memberikan akses ke perangkat Anda pada laptop / komputer Anda. Lihatlah perangkat Anda dan klik tombol "Izinkan Akses" serta izin debugging.


0

Menjalankan AVD menggunakan prosesor x86 10x lebih cepat daripada menggunakan emulator ARM, tetapi sebagian besar waktu Anda hanya mengompilasi APK untuk ARM. Untuk menjalankan emulasi lebih cepat menggunakan x86 AVD, saya harus melakukan hal berikut (untuk proyek Cocos2d-x):

  • 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})
            }
        }
    }
    

0

Memulai ulang perangkat memecahkan masalah untuk saya (React-native)


0

Itu terjadi pada saya setelah memperbarui Android Studio. Dalam kasus saya, itu terjadi karena pengaturan build tidak secara otomatis dikonfigurasi ke x86Debug-x86. Ubah saja dengan membuka Build >> Select Build Variant >> Ubah opsi varian build dari armeabi-v7a menjadi x86Debug-x86 atau apa pun yang Anda butuhkan di emulator.



0

saya melihat ini

Jika Anda menggunakan CMake untuk build Anda, periksa file \ proj.android \ gradle.properties, dan perbarui PROP_APP_ABI untuk menyertakan build untuk x86, atau sebagai alternatif, Anda bisa menggunakan Android armeabi-v7a atau arm64-v8a gambar-gambar.

Contoh: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86

Jika Anda tidak menggunakan cmake, cari di \ proj.android \ app \ jni \ Application.mk jika Anda perlu mengubah pengaturan ABI di sana.


Selamat datang di StackOverflow, tambahkan beberapa deskripsi dan kode jika diperlukan untuk memahami jawabannya karena ini akan menyelesaikan masalah seseorang SECEPATNYA.
Nensi Kasundra
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.