Не можете использовать android: xlargeScreens= "true"?


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

android:xlargeScreens="true"

Я получаю эту ошибку:

ошибка: не найден идентификатор ресурса для атрибута "xlargeScreens" в пакете "android'

Это мой файл манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cro.perger.bonbon"
      android:versionCode="5"
      android:versionName="1.4">
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".bonbon"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

            <!-- Broadcast Receiver that will process AppWidget updates -->
        <receiver android:name=".HelloWidget" android:label="@string/w_name">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
        <meta-data android:name="android.appwidget.provider"
            android:resource="@xml/hello_widget_provider" />
        </receiver>

        <receiver android:name=".SMSReceiver">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>    

        </application>
        <supports-screens android:resizeable="true"
                      android:smallScreens="true"
                      android:normalScreens="true"
                      android:largeScreens="true"
                      android:xlargeScreens="true"
                      android:anyDensity="true"/>
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <uses-permission android:name="android.permission.READ_SMS"/>
</manifest>

Что мне делать?

7 15

7 ответов:

Похоже, что вам нужно построить различные APK для старых и новых версий. Проверьте блог, опубликованный на http://android-developers.blogspot.com/search/label/Android%20Market о поддержке нескольких APK: "поддержка нескольких APK дает вам множество способов контролировать распространение приложений. Например, вы можете использовать его для создания отдельных APK для телефонов и планшетов под одним и тем же списком продуктов."

Пожалуйста, проверьте ваш проект Build Target для поддержки экрана xlarge ваш проект build target должен быть по крайней мере android 2.3.3 adk.

В Затмении -?щелкните правой кнопкой мыши на project - > Properties - > Android - > выберите Project Build Tagrget as 2.3.3 или далее

Мое приложение поддерживает android версии 1.5 до последней версии, и это то, что у меня есть в моем манифесте:

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

Вот что появляется на сайте разработчика android market для моего приложения:

Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
        android.hardware.touchscreen
This application is available to over 555 devices.

Кроме того, моя цель сборки проекта-2.3.3, но у меня все еще есть много установок на устройствах под управлением android 3.0

И это только предположение, я не уверен в этом, но не включал бы разрешения, такие как CALL_PHONE фильтровать ваше приложение от поиска на планшете, так как они не есть такая особенность?

Вам нужно использовать по крайней мере android API уровня 9 Для android:xlargeScreens, чтобы быть распознанным в AndroidManifest.xml.

Для этого убедитесь, что в вашем файле default.properties у вас есть target=android-9 или выше. Это также можно установить с помощью свойств проекта, в разделе Android.

Проблема заключается в вашем minSdkVersion.

Атрибут xlargeScreens был введен на уровне API 9. Поскольку вы указали, что ваше приложение, вероятно, будет работать под API-Level 4, android не может найти этот атрибут.

Измените атрибут minSdkVersion на 11, и он должен работать.

-атрибут targetSdkVersion, который вы задаете как 11, указывает только на то, что приложение было разработано для этой версии (поэтому оно "рекомендуется"), но minSdkVersion указывает минимальный уровень API, см. здесь .

На какой уровень установлен ваш API? В документации сказано, что для этого требуется API 9 или выше. 9 - это 2.3. Смотрите Эту ссылку, которая гласит:

Android: xlargeScreens указывает, поддерживает ли приложение дополнительные функции большие форм-факторы экрана. Экран очень большим дисплеем является дисплей это значительно больше, чем "большой" экран, например, планшета. (или что-то большее) и может потребовать особого ухода на часть приложения, чтобы хорошо использовать его, Хотя это может быть полагаться изменение размера по системе, чтобы заполнить экран. Значение по умолчанию для этого на самом деле варьируется между некоторыми версиями, так что лучше, если вы явно объявляйте этот атрибут в любое время. Остерегайтесь, что установка его "false" обычно включает режим совместимости экрана. Этот атрибут был введен на уровне API 9.

Android: xlargeScreens :
Этот атрибут был введен в API level 9 (Android 2.3.3) . Если ваша цель сборки меньше уровня API 9, то вы получите ошибку "No resource identifier found for attribute 'xlargeScreens' in package 'android"
Установите целевой уровень сборки API 9 или выше, и эта ошибка исчезнет.