Почему Google Play сообщает, что мое приложение несовместимо с устройствами, на которых оно должно работать?

#java #android #android-studio #google-play #google-play-games

#java #Android #android-studio #google-play #google-play-игры

Вопрос:

Недавно я опубликовал приложение, над которым работал, для практики (https://play.google.com/store/apps/details?id=ali.ColorMatch2 ) и я попросил своего друга протестировать это для меня на его Nexus 5 под управлением Android 6.0.1. Я также использовал Nexus 5 для запуска apk, когда разрабатывал приложение. По какой-то причине он получил сообщение о том, что «Это устройство несовместимо»

Это чрезвычайно простое приложение, которое не использует никаких функций, которые должны ограничивать совместимость. Единственное, что мне приходится ограничивать совместимость, — это небольшой фрагмент кода, объявляющий его совместимым только с телефонами, но я скопировал его напрямую сhttps://developer.android.com/guide/practices/screens-distribution.html .

Вот мой манифест:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ali.ColorMatch2">
<compatible-screens>
   <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />

    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />            
    </compatible-screens>
    ...
    </manifest>
  

Обновление Google Play занимает несколько часов после загрузки другого apk, поэтому мне сложно опробовать материал и посмотреть, работает ли он. Я просмотрел другие случаи, когда были опубликованы похожие вопросы, и эти решения не сработали. Мой apk-файл не имеет даже 2 МБ, поэтому я знаю, что это не потому, что он слишком большой, и он использует только две функции — android.hardware.FAKETOUCH и android.hardware.screen.ПОРТРЕТ

Вот консоль разработчика Google Play, запущенная в моем apk:http://imgur.com/a/st0Aj

Спасибо

* РЕДАКТИРОВАТЬ *

После добавления определений xxhdpi:

 <screen android:screenSize="small" android:screenDensity="xxhdpi" />
<screen android:screenSize="normal" android:screenDensity="xxhdpi" />
  

в compatible-screens разделе я теперь получаю предупреждение в Play Store о том, что мое приложение предназначено для планшетов, а я этого не хочу, должен ли я беспокоиться об этом?

Ответ №1:

В вашем списке нет поддерживаемых экранов с разрешением xxhdpi, поэтому я предполагаю, что каким-то образом конфигурации экрана на этих двух телефонах отличаются. Либо удалите раздел, либо добавьте определения для экранов с разрешением xxhdpi и большего размера:

 <compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <screen android:screenSize="small" android:screenDensity="xxhdpi" />
    <!-- all normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />
    <screen android:screenSize="normal" android:screenDensity="xxhdpi" />
    <!-- all large size screens -->
    <screen android:screenSize="large" android:screenDensity="ldpi" />
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />
    <screen android:screenSize="large" android:screenDensity="xxhdpi" />
</compatible-screens>
  

Смотрите здесь для получения более подробной информации.

Я думаю, предупреждение ожидаемо, поскольку вы определяете совместимость для больших экранов и точек на дюйм.

Комментарии:

1. Мне нужно сохранить это, чтобы убедиться, что оно не загружается на планшеты. Я только что просмотрел это, и Nexus 5 имеет плотность экрана 445 ppi, а xxhdpi равен 480 ppi, так что вы можете быть правы. Я добавлю определения для xxhdpi, спасибо

2. Рад, что смог помочь. Пожалуйста, найдите время внести свой вклад и проголосуйте / отметьте мой ответ, если он был полезен для вашего вопроса.

3. Эй, итак, я очень поспешно внес изменения и повторно загрузил свой apk, и теперь Google сообщает мне, что мое приложение предназначено для планшетов? Что? imgur.com/a/FqtrA

4. Выполнено. Кроме того, в Play Store по-прежнему сообщается, что мой новый apk-файл, содержащий определения для экранов с разрешением xxhdpi, несовместим с Nexus 5 и Galaxy S6.