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?

Alexander Ibarra
sumber
AVD apa yang Anda gunakan? Gambar Sistem Apa? Proyek GitHub apa?
OneCricketeer
Dengan kata lain, gambar Intel x86 tidak akan menjalankan kode ARM.
OneCricketeer
github.com/jreyes/mirror
Alexander Ibarra
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 .

Bruce Lee
sumber
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.

pengguna3157940
sumber
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

rafahoro
sumber
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)

rudicjovan.dll
sumber
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 !!!

Roopesh Reddy
sumber
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

Sachin K.
sumber
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"
    
yao
sumber
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.

OneCricketeer
sumber
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.

Val Geyvandov
sumber
5

Bagi saya itu berhasil saya mengubah opsi kabel dari

-> Charge Only. 

Untuk

-> Transfer file.
Sushil Chaudhary
sumber
4

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

Iman Marashi
sumber
3

Kode di bawah berfungsi untuk saya:

ndk {
     abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
C-lio Garcia
sumber
2

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

svguerin3
sumber
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
mohsen khalili
sumber
1

adb kill-server

adb start-server

Ini bekerja untuk saya di OS windows.

siddhartha shankar
sumber
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.

Adi
sumber
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.

NVA
sumber
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})
            }
        }
    }
    
nikc
sumber
0

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

O. Borcuhin
sumber
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.

Rico Valentino
sumber
0

Coba aktifkan Sumber Tidak Dikenal dari Opsi Keamanan. Itu berhasil untuk saya.

Sathish Subramani
sumber
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.

David Arribas
sumber
Selamat datang di StackOverflow, tambahkan beberapa deskripsi dan kode jika diperlukan untuk memahami jawabannya karena ini akan menyelesaikan masalah seseorang SECEPATNYA.
Nensi Kasundra