Mengapa Google Play Store mengatakan aplikasi Android saya tidak kompatibel dengan perangkat saya sendiri?

91

Saya ragu untuk menanyakan pertanyaan ini, karena tampaknya banyak orang memiliki masalah yang sama, namun saya tidak menemukan solusi yang dapat menyelesaikan contoh khusus saya.

Saya telah mengembangkan aplikasi Android ( tautan ke aplikasi sebenarnya ) dan telah mengunggahnya ke Play Store. Kata Play Store

"This app is incompatible with your XT Mobile Network HTC HTC Wildfire S A510b."

Tentu saja itu adalah ponsel yang saya kembangkan aplikasinya, jadi itu harus kompatibel. Beberapa orang dengan perangkat lain mengatakan bahwa itu laporan kompatibel, yang lain mengatakan itu laporan tidak kompatibel, tetapi saya tidak dapat menemukan tren. (Rupanya saya tidak terlalu mengenal banyak orang yang memiliki perangkat Android.)

Saya telah mencoba yang berikut ini:

  • memindahkan file berukuran besar keluar dari res/rawdirektori seperti yang disarankan oleh jawaban ini . Satu-satunya file di sana adalah file teks ~ 700 kB, tetapi saya memindahkannya ke assets/tanpa perubahan yang jelas.

  • menambahkan dua pernyataan fitur berikut:

    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    

    berpikir bahwa mungkin ponsel saya tidak mengklaim mendukung android.hardware.touchscreenfitur biasa , tetapi sekali lagi, tanpa perubahan yang jelas.

Saat mengupload APK ke Play Store, satu-satunya filter yang dilaporkan sebagai aktif adalah android.hardware.faketouchfiturnya.

Berikut adalah keluaran dari aapt dump badging bin/NZSLDict-release.apk:

package: name='com.hewgill.android.nzsldict' versionCode='3' versionName='1.0.2'
sdkVersion:'4'
targetSdkVersion:'4'
uses-feature:'android.hardware.faketouch'
uses-feature-not-required:'android.hardware.touchscreen'
application-label:'NZSL Dictionary'
application-icon-160:'res/drawable/icon.png'
application: label='NZSL Dictionary' icon='res/drawable/icon.png'
launchable-activity: name='com.hewgill.android.nzsldict.NZSLDictionary'  label='NZSL Dictionary' icon=''
main
other-activities
supports-screens: 'small' 'normal' 'large'
supports-any-density: 'true'
locales: '--_--'
densities: '160'

dan untuk kelengkapan, file manifes saya:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.hewgill.android.nzsldict"
      android:versionCode="3"
      android:versionName="1.0.2">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
    <uses-feature android:name="android.hardware.faketouch" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    <application android:label="@string/app_name"
        android:icon="@drawable/icon">
        <activity android:name="NZSLDictionary"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".WordActivity" />
        <activity android:name=".VideoActivity" />
        <activity android:name=".AboutActivity" />
    </application>
</manifest> 

Di bagian "Ketersediaan Perangkat" di Play Store, saya dapat melihat bahwa semua perangkat HTC, termasuk Wildfire S, didukung kecuali untuk "G1 (trout)" dan "Touch Viva (opal)", apa pun itu. Sebenarnya saya melihat bahwa "Wildfire S (marvel)" dan "Wildfire S A515c (marvelc)" terdaftar sebagai didukung, tetapi "Wildfire S A510b" saya tidak disebutkan secara spesifik. Dapatkah pengidentifikasi sub-model semacam ini sangat berarti? Saya dapat mengunduh beberapa aplikasi lain dari Google Play ke ponsel saya tanpa masalah.

Satu-satunya hal yang belum saya lakukan pada saat ini adalah menunggu 4-6 jam setelah mengunggah versi terbaru (seperti dalam komentar ini ) untuk melihat apakah ia masih mengatakan itu tidak kompatibel dengan ponsel saya. Namun, halaman Play Store saat ini menampilkan 1.0.2 yang merupakan yang terbaru yang saya unggah.

Greg Hewgill
sumber
Sesuatu yang membantu saya mengatasi banyak masalah terkait telepon adalah mengatur ACRA: code.google.com/p/acra Saya menjalankannya pada awal aplikasi pertama untuk menurunkan spesifikasi lengkap telepon, dan menggunakan handleSilentExceptionmetode untuk melaporkan secara diam-diam. Setidaknya itu akan memberi tahu Anda perangkat keras mana yang sedang digunakan aplikasi.
Gavin Miller
2
@GavinMiller: Terima kasih, tapi saya tidak yakin itu akan membantu ketika Play Store menolak untuk memberikan aplikasi sama sekali.
Greg Hewgill
Mungkin saya salah memahami komentar Anda: "Beberapa orang dengan perangkat lain mengatakan bahwa laporannya kompatibel, yang lain mengatakan laporannya tidak kompatibel, tetapi saya tidak dapat menemukan tren." Jika banyak orang yang tidak Anda kenal dapat mengunduh dan menginstal aplikasi, Anda dapat mengumpulkan kumpulan data perangkat keras yang lebih besar untuk mencoba dan membentuk tren. Dengan demikian meringankan "Saya tidak tahu banyak orang dengan perangkat Android." isu.
Gavin Miller
@GavinMiller: Namun, itu hanya akan memberi tahu saya perangkat mana yang diyakini Google Play dapat diinstal, dan tidak akan memberikan informasi tentang perangkat mana yang menurut Google Play tidak dapat diinstal. Selain itu, bahkan mengetahui dengan pasti perangkat mana yang baik dan mana yang tidak, tidak akan benar-benar membantu saya menyelesaikan masalah ini.
Greg Hewgill
periksa solusi ini bekerja untuk saya stackoverflow.com/a/14020303/3392323
SAndroidD

Jawaban:

84

Jawabannya tampaknya hanya terkait dengan ukuran aplikasi. Saya membuat aplikasi "hello world" sederhana tanpa ada yang spesial di file manifes, mengunggahnya ke Play Store, dan dilaporkan kompatibel dengan perangkat saya.

Saya tidak mengubah apa pun di aplikasi ini kecuali untuk menambahkan lebih banyak konten ke res/drawabledirektori. Ketika .apkukurannya mencapai sekitar 32 MB, Play Store mulai melaporkan bahwa aplikasi saya tidak kompatibel dengan ponsel saya.

Saya akan mencoba menghubungi dukungan pengembang Google dan meminta klarifikasi tentang alasan batas ini.

PEMBARUAN : Berikut adalah tanggapan dukungan pengembang Google untuk ini:

Terima kasih atas catatan Anda. Saat ini batas ukuran file maksimum untuk unggahan aplikasi ke Google Play adalah sekitar 50 MB.

Namun, beberapa perangkat mungkin memiliki partisi cache yang lebih kecil dari 50 MB sehingga aplikasi tidak tersedia untuk diunduh pengguna. Misalnya, beberapa perangkat HTC Wildfire dikenal memiliki partisi cache 35-40 MB. Jika Google Play dapat mengidentifikasi perangkat yang tidak memiliki cache cukup besar untuk menyimpan aplikasi, itu mungkin memfilternya agar tidak muncul untuk pengguna.

Saya akhirnya menyelesaikan masalah saya dengan mengonversi semua file PNG ke JPG, dengan sedikit penurunan kualitas. Itu.apk file sekarang 28 MB, yang berada di bawah ambang batas apapun Google Play menegakkan untuk telepon saya.

Saya juga menghapus semua <uses-feature>barang, dan sekarang hanya memiliki ini:

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
Greg Hewgill
sumber
Informasi yang sangat menarik dan berharga. Dan sangat menjengkelkan karena ini tidak didokumentasikan di mana pun.
Michael A.
2
Memang, saya tidak akan pernah tahu tentang masalah ini jika saya tidak memiliki telepon Wildfire.
Greg Hewgill
Saya memiliki 3 game: berukuran 32MB, 35MB dan 44MB. HTC bravo saya melihat dua game pertama dan tidak melihat yang ketiga di toko. Keinginan HTC S teman saya hanya melihat game pertama. Jadi, tampaknya ukuran game harus di bawah 33MB atau lebih agar dapat dilihat oleh sebagian besar perangkat (?). Sayangnya saya melihat balasan ini terlambat dan tidak tahu tentang masalah tersebut selama berbulan-bulan ... Saya yakin itu tergantung pada jenis prosesor perangkat, versi OpenGL yang didukung, batasan yang ditetapkan dalam manifes atau sesuatu. Sigh ..
iseeall
7
Gila bahwa Google tidak mencantumkan alasan ketidakcocokan di Play Store. Saya selalu berasumsi bahwa setidaknya pengembang aplikasi akan menerima informasi ini dan secara sadar memilih untuk tidak mendukung perangkat saya. Bagaimana situasinya tetap seperti ini begitu lama?
Gerry
1
@Greg Halo Greg. Saya telah menghubungi dukungan google tentang jenis masalah yang serupa. Karena ukuran aplikasi saya hanya 5 MB, saya melihat opsi berbeda mengapa Google Play memfilter aplikasi saya pada perangkat tertentu. Sudah 72 jam sejak saya menghubungi mereka dan mereka tidak kembali dengan penjelasan apa pun. Adakah cara saya dapat menghubungi Dukungan Google selain dari Kontak Kami biasa?
hemanth kumar
16

Saya mengalami ini juga - saya melakukan semua pengembangan saya pada Lenovo IdeaTab A2107A-F dan dapat menjalankan pengembangan yang dibangun di atasnya, dan bahkan merilis APK yang ditandatangani (diinstal dengan adb install) tanpa masalah. Setelah diterbitkan dalam mode uji Alfa dan tersedia di Google Play, saya menerima pesan kesalahan "tidak kompatibel dengan perangkat Anda".

Ternyata saya telah menempatkan saya AndroidManifest.xmlberikut dari tutorial:

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />

Nah, Lenovo IdeaTab A2107A-F tidak memiliki kamera pemfokusan otomatis (yang saya pelajari dari http://www.phonearena.com/phones/Lenovo-IdeaTab-A2107_id7611 , di bawah Cons: tidak memiliki kamera autofokus). Terlepas dari apakah saya menggunakan fitur itu, Google Play mengatakan tidak. Setelah itu dihapus, saya membangun kembali APK saya, mengunggahnya ke Google Play, dan cukup yakin IdeaTab saya sekarang ada di daftar perangkat yang kompatibel.

Jadi, periksa kembali setiap <uses-feature>dan jika Anda telah melakukan beberapa salin-tempel dari web, periksa lagi. Kemungkinan besar Anda meminta beberapa fitur yang bahkan tidak Anda gunakan.

Joe
sumber
4
Terima kasih ! Saya menggunakan <uses-feature> lain: <using-feature android: name = "android.hardware.camera2" /> Dan karena itu saya memiliki perangkat yang kompatibel dengan NOL. Saya menghapus garis dan sekarang memiliki 10000.
Jack '
Anda dapat menyetelnya untuk tetap menggunakannya, tetapi tidak memerlukannya: <
using
1
<using-feature android: name = "android.hardware.camera2" /> membuat aplikasi saya tidak kompatibel sehingga saya tidak dapat menemukan aplikasi tersebut di playstore. Selamatkan hidup saya
Anand Savjani
11

Saya mengalami masalah ini juga saat mengembangkan aplikasi untuk pelanggan yang ingin video offline tersedia dari aplikasi mereka. Saya telah menulis posting blog tentang mengapa aplikasi yang saya kerjakan selama berbulan-bulan tidak akan muncul di play store untuk perangkat saya ( posting dapat ditemukan di sini ). Saya menemukan hal yang sama seperti yang ditemukan @Greg Hewgill: Batasan partisi cache pada beberapa perangkat .

Perjalanan saya tidak berhenti di sana. Pelanggan ingin memiliki video ini dalam aplikasi dan tidak ingin kualitas videonya diturunkan. Setelah beberapa penelitian, saya menemukan bahwa menggunakan file perluasan adalah solusi sempurna untuk masalah kami.

Untuk berbagi pengetahuan saya dengan komunitas Android, saya mengadakan pembicaraan di droidconNL 2012 tentang file perluasan. Saya membuat presentasi dan kode contoh untuk menggambarkan betapa mudahnya untuk mulai menggunakan file perluasan. Bagi Anda yang ingin menggunakan file perluasan untuk mengatasi masalah ini, silakan lihat postingan yang berisi presentasi dan kode sampel

Ali Derbane
sumber
4
Tautan dukungan Google yang disebutkan dalam posting Anda sekarang sudah usang, tautan baru tersebut adalah support.google.com/googleplay/android-developer/answer/… . Semoga Anda memperbarui artikel dengan tautan terbaru dan btw, posting bagus. !!
Rohan Kandwal
7

Anda mungkin ingin mencoba dan mengatur atribut support-screens:

<supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" >
</supports-screens>

Wildfire memiliki layar kecil, dan menurut dokumentasi atribut ini harus default ke "true" dalam semua kasus, tetapi ada masalah yang diketahui dengan pengaturan layar dukungan pada ponsel yang berbeda, jadi saya akan mencobanya.

Selain itu - seperti yang disarankan David - selalu kompilasi dan targetkan terhadap versi terbaru Android API, kecuali Anda memiliki alasan kuat untuk tidak melakukannya. Hampir setiap SDK sebelum 2.2 memiliki beberapa masalah serius atau perilaku aneh; bantuan SDK yang terakhir untuk menyelesaikan atau menutupi banyak (meskipun tidak semuanya). Anda bisa (dan harus) menggunakan fitur Lint untuk memeriksa apakah aplikasi Anda tetap kompatibel dengan API 4 saat menyiapkan rilis.

Michael A.
sumber
Terima kasih, saya menunggu tanggapan dari dukungan pengembang Google untuk permintaan dukungan terbaru saya. Saya akan mencoba ini setelah saya mendapat tanggapan dari mereka (saya tidak ingin membingungkan mereka dengan mengunggah APK lain). Akan memberi tahu Anda bagaimana hasilnya.
Greg Hewgill
Semoga Anda tidak perlu menunggu terlalu lama. Mereka tidak benar-benar memiliki reputasi untuk respons yang cepat. :-)
Michael A.
Saya sudah bolak-balik beberapa kali dengan mereka, tetapi pertanyaan terakhir saya tidak terjawab karena muncul pada 22 jam. Ini membuat frustrasi harus menunggu, tapi setidaknya ini bukan misi penting atau apa pun.
Greg Hewgill
Hanya ingin memberi tahu Anda bahwa saya menemukan masalahnya, lihat jawaban saya untuk pertanyaan ini. Terima kasih atas bantuan Anda.
Greg Hewgill
7

Finlay, saya menghadapi masalah yang sama dalam aplikasi saya. Saya telah mengembangkan aplikasi Phone Gap android:minSdkVersion="7" & android:targetSdkVersion="18"yang merupakan versi terbaru dari platform android.

Saya menemukan masalah dalam menggunakan Google Docs

Mungkin masalah adalah bahwa saya telah menulis beberapa fungsi JS yang berfungsi KEY-CODEuntuk memvalidasi hanya Huruf & Angka tetapi papan tombol memiliki kode kunci yang berbeda khusus untuk keyboard komputer & keyboard Seluler. Jadi itu masalah saya.

Saya tidak yakin apakah jawaban saya benar atau tidak dan mungkin bisa jadi jawaban di atas lebih sedikit tetapi saya akan mencoba mencantumkan beberapa poin yang harus diperhatikan saat kami membangun aplikasi. Saya harap Anda mengikuti ini untuk memecahkan masalah semacam ini.

  • Gunakan android:minSdkVersion="?"sesuai kebutuhan Anda & android:targetSdkVersion="?"harus terbaru yang akan ditargetkan aplikasi Anda. lihat lebih banyak

  • Coba tambahkan hanya izin yang akan digunakan dalam aplikasi Anda dan hapus semua yang tidak perlu.

  • Lihat layar yang didukung oleh aplikasi

    <supports-screens 
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true"/>
    
  • Mungkin Anda telah menerapkan beberapa kode kostum atau widget kostum yang tidak dapat berjalan di beberapa perangkat atau tab terlambat jadi sebelum menulis kode yang panjang pertama coba tulis beberapa kode beta dan uji apakah kode Anda akan berjalan di semua perangkat atau tidak .

  • Dan saya berharap Google akan menerbitkan alat yang dapat memvalidasi kode Anda sebelum mengunggah aplikasi dan juga mengatakan bahwa karena beberapa alasan tertentu kami tidak diizinkan untuk menjalankan aplikasi Anda di beberapa perangkat sehingga kami dapat dengan mudah menyelesaikannya.

Chintan Khetiya
sumber
6

Saya punya beberapa saran:

  1. Pertama-tama, Anda tampaknya menggunakan API 4 sebagai target Anda. AFAIK, merupakan praktik yang baik untuk selalu mengkompilasi terhadap SDK terbaru dan mengaturnya android:minSdkVersionsesuai kebutuhan Anda .

  2. Dengan mengingat hal itu, ingatlah bahwa android:requiredatribut telah ditambahkan di API 5 :

Deklarasi fitur dapat menyertakan android:required=["true" | "false"]atribut (jika Anda mengompilasi API level 5 atau lebih tinggi), yang memungkinkan Anda menentukan apakah aplikasi (...)

Oleh karena itu, saya menyarankan agar Anda mengkompilasi terhadap SDK 15, setel targetSdkVersionke 15 juga, dan menyediakan fungsionalitas itu.

Itu juga ditampilkan di sini, di situs Play, sebagai tidak kompatibel dengan perangkat apa pun yang saya miliki yang (kebetulan?) Gingerbread (Galaxy Ace dan Galaxy Y di sini). Tapi itu terlihat kompatibel dengan Galaxy Tab 10.1 ( Honeycomb ) saya, Nexus S dan Galaxy Nexus (keduanya di ICS ).

Itu juga membuat saya bertanya-tanya, dan ini adalah tebakan yang sangat liar, tetapi karena android.hardware.faketouch API11 + , mengapa Anda tidak mencoba menghapusnya hanya untuk melihat apakah berfungsi? Atau mungkin itu semua terkait, karena Anda mencoba menggunakan fitur ( faketouch) dan requiredatribut yang tidak tersedia di API 4. Dan dalam hal ini Anda harus melakukan kompilasi dengan API terbaru.

Saya akan mencobanya terlebih dahulu, dan menghapus faketouchpersyaratan hanya sebagai pilihan terakhir (tentu saja) --- karena berfungsi saat mengembangkan, saya katakan itu hanya masalah aplikasi yang dikompilasi yang tidak mengenali fitur tersebut (karena persyaratan SDK) , sehingga meninggalkan masalah pemfilteran yang tidak terduga di Play.

Maaf jika tebakan ini tidak menjawab pertanyaan Anda, tetapi sangat sulit untuk mendiagnosis masalah semacam itu dan menunjukkan solusinya tanpa benar-benar menguji. Atau setidaknya bagi saya tanpa pengetahuan yang tepat tentang bagaimana Play benar-benar memfilter aplikasi.

Semoga berhasil.

davidcesarino.dll
sumber
Terima kasih, itu memberi saya beberapa ide spesifik. Awalnya saya tidak memiliki <uses-feature>tag sama sekali, itu merupakan upaya untuk membuatnya kompatibel dengan lebih banyak perangkat daripada lebih sedikit. Saya akan mencoba mengubah tag versi SDK, yang tampaknya merupakan pendekatan yang paling mungkin. Saya harus menambahkan yang saya gunakan minSdkVersion="4"karena versi itu tidak lagi menyiratkan beberapa izin (baca status ponsel, ubah kartu sd) yang tidak diperlukan aplikasi saya.
Greg Hewgill
Mengubah versi SDK menjadi android:minSdkVersion="5" android:targetSdkVersion="15"juga tidak membantu. Saya telah menghubungi dukungan pengembang Google Play dan semoga mereka dapat memberi tahu saya alasannya. Alangkah baiknya jika alasan pemfilteran ditampilkan di halaman aplikasi Play.
Greg Hewgill
Ya itu akan luar biasa. Sementara itu, apakah Anda mencoba menyetel faketouchsebagai required= false?
davidcesarino
Iterasi terbaru menghapus semua <uses-feature>tag karena dukungan Google memberi tahu saya alasan tidak tersedia untuk perangkat saya adalah karena android.hardware.faketouchfiturnya. Kelihatannya konyol, terutama karena salah satu versi saya sebelumnya juga tidak memiliki <uses-feature>tag, tapi terserah. Saya menunggu tanggapan mereka dan saya tidak ingin membingungkan mereka dengan mengupload versi lain. Alangkah baiknya jika ada cara untuk mengujinya tanpa berulang kali mengunggah dan memublikasikan APK baru.
Greg Hewgill
Saya tidak akan mengatakan konyol, karena ini adalah bendera yang ditambahkan pada versi sdk yang lebih baru (api 11), oleh karena itu mengapa saya menyarankan untuk mengkompilasi dan menargetkan api15 (ingat untuk mengubah properti proyek Anda, bukan hanya manifest). Saya masih terkejut mengaturnya sesuai kebutuhan = false tidak berfungsi.
davidcesarino
6

Untuk memberikan solusi tambahan untuk masalah 'Aplikasi ini tidak kompatibel dengan ...' di atas, izinkan saya membagikan solusi saya untuk penyebab masalah yang berbeda. Saya mencoba menginstal aplikasi pada perangkat Samsung Galaxy Y (GT-S6350) kelas bawah dan mendapatkan kesalahan ini dari Play store. Untuk menguji berbagai konfigurasi AndroidManifest, saya membuat akun dan mengikuti rutinitas seperti yang dijelaskan di https://stackoverflow.com/a/5449397/372838 hingga perangkat saya muncul di daftar perangkat yang didukung.

Ternyata banyak perangkat menjadi tidak kompatibel saat Anda menggunakan izin Kamera:

<uses-permission android:name="android.permission.CAMERA" />

Ketika saya menghapus izin khusus itu, aplikasi itu tersedia untuk 1180 perangkat, bukan 870. Semoga ini bisa membantu seseorang

dvtoever
sumber
7
Mungkin, ini bisa membantu: <using-permission android: name = "android.permission.CAMERA" /> <
using
6

Izin yang Menyiratkan Persyaratan Fitur

Misalnya, fitur android.hardware.bluetooth telah ditambahkan di Android 2.2 (API level 8), tetapi Bluetooth API yang dirujuknya telah ditambahkan di Android 2.0 (API level 5). Karenanya, beberapa aplikasi dapat menggunakan API sebelum mereka memiliki kemampuan untuk menyatakan bahwa mereka memerlukan API melalui sistem.

Untuk mencegah aplikasi tersebut tersedia secara tidak sengaja, Google Play mengasumsikan bahwa izin terkait perangkat keras tertentu menunjukkan bahwa fitur perangkat keras yang mendasarinya diperlukan secara default. Misalnya, aplikasi yang menggunakan Bluetooth harus meminta izin BLUETOOTH dalam sebuah elemen - untuk aplikasi lama, Google Play mengasumsikan bahwa deklarasi izin tersebut berarti bahwa fitur android.hardware.bluetooth yang mendasarinya diperlukan oleh aplikasi dan menyiapkan pemfilteran berdasarkan fitur tersebut .

Tabel di bawah mencantumkan izin yang menyiratkan persyaratan fitur yang setara dengan yang dideklarasikan dalam elemen. Perhatikan bahwa deklarasi, termasuk atribut android: required yang dideklarasikan, selalu didahulukan daripada fitur yang disiratkan oleh izin di bawah ini.

Untuk salah satu izin di bawah ini, Anda bisa menonaktifkan pemfilteran berdasarkan fitur tersirat dengan secara eksplisit mendeklarasikan fitur tersirat secara eksplisit, dalam sebuah elemen, dengan atribut android: required = "false". Misalnya, untuk menonaktifkan pemfilteran apa pun berdasarkan izin CAMERA, Anda akan menambahkan deklarasi ini ke file manifes:

<uses-feature android:name="android.hardware.camera" android:required="false" />


<uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />

http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

OM PRAKASH SEERVI
sumber
Terima kasih! Saya tidak tahu izin penggunaan default ke fitur yang diperlukan.
Jim Pekarek
3

Biasanya, ditemukan tepat setelah memposting pertanyaan ini dengan putus asa; alat yang saya cari adalah:

$ aapt dump badging <my_apk.apk>
keldar
sumber
Sepertinya Anda bermaksud memposting jawaban ini di stackoverflow.com/questions/16145927/… sebagai gantinya.
Greg Hewgill
3

Meskipun sudah ada beberapa jawaban, saya pikir jawaban saya mungkin membantu beberapa orang yang memiliki masalah yang persis sama dengan saya. Dalam kasus saya, masalahnya disebabkan oleh izin berikut yang ditambahkan sesuai saran jaringan iklan:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Konsekuensi dari izin di atas adalah fitur berikut ditambahkan secara otomatis:

android.hardware.LOCATION
android.hardware.location.GPS
android.hardware.location.NETWORK

Alasannya adalah bahwa "Google Play mencoba menemukan persyaratan fitur tersirat aplikasi dengan memeriksa elemen lain yang dideklarasikan dalam file manifes, khususnya elemen." Dua dari perangkat pengujian saya tidak memiliki fitur di atas, sehingga aplikasi menjadi tidak kompatibel dengannya. Menghapus izin tersebut segera menyelesaikan masalah.

Hong
sumber
2

Saya menemukan cara tambahan di mana masalah ini terjadi:
OS asli ponsel LG saya adalah Froyo (Android 2.2) dan telah diperbarui ke ICS (Android 4.0.4). Tetapi Konsol Pengembang Google Play menunjukkan bahwa ia mendeteksi ponsel saya sebagai perangkat Froyo. (Google Play tidak mengizinkan aplikasi untuk diunduh karena 'ketidakcocokan' palsu, tetapi entah bagaimana itu masih mendeteksi pemasangan.)

Pengaturan telepon, dalam 'perangkat lunak', menunjukkan ICS V4.0.4. Tampaknya info server Google Play untuk ponsel tidak diperbarui untuk mencerminkan pembaruan ICS di perangkat. Manifes aplikasi minSDK disetel ke Honeycomb (3.0), jadi tentu saja Google Play memfilter aplikasi.

Yang menarik:
Aplikasi ini menggunakan In-app Billing V3. Pertama kali melalui IabHelper memungkinkan aplikasi melakukan pembelian melalui layanan Google Play. Namun setelah pembelian dilakukan, pembelian TIDAK dimasukkan ke dalam inventaris dan IabHelper melaporkan tidak ada item yang dimiliki. Pesan debug menunjukkan hasil 'pembelian gagal' dari pembelian meskipun jendela Google Play mengumumkan "pembelian berhasil".

ajay1865
sumber
0

Saya memiliki masalah yang sama. Itu disebabkan oleh kode versi dan angka yang berbeda di manifes dan skrip build gradle saya. Saya mengatasinya dengan menghapus kode versi dan nomor versi dari manifes saya dan membiarkan gradle mengurusnya.

John Moffitt
sumber
0

Saya juga punya masalah yang sama. Saya menerbitkan Aplikasi dalam mode Uji yang dibuat dengan React Native 59. itu tidak kompatibel untuk penguji tertentu. Pesannya tidak jelas tentang mengapa aplikasi tidak kompatibel, setelah saya mengetahui bahwa saya membatasi aplikasi untuk hanya tersedia untuk negara tertentu. itu masalahnya, tapi seperti yang saya katakan, pesannya tidak jelas. di Play Store WebApp, pesannya adalah: "aplikasi ini tidak kompatibel dengan perangkat Anda". di aplikasi seluler, pesan "Aplikasi ini tidak tersedia di negara Anda"

devoka
sumber
0

Jika Anda berada di sini pada tahun 2020 dan menurut Anda perangkat yang menerima pesan kesalahan seharusnya kompatibel:

Beberapa aplikasi utama lainnya telah mengalami ini termasuk Instagram (1B + pemasangan) dan Clash of Clans (100 juta + pemasangan). Tampaknya ada masalah dengan sistem operasi Google Android.

Untuk memperbaiki pesan kesalahan "perangkat Anda tidak kompatibel dengan versi ini", coba bersihkan cache Google Play Store, lalu hapus datanya. Selanjutnya, mulai ulang Google Play Store dan coba instal aplikasi lagi.

[ https://support.getupside.com/hc/en-us/articles/226667067--Device-not-compatible-error-message-in-Google-Play-Store]

Berikut ini tautan ke halaman dukungan resmi Google yang dapat Anda tautkan ke pengguna Anda tentang cara membersihkan cache: https://support.google.com/googleplay/answer/7513003

blub
sumber