Не удается использовать android: xlargeScreens= "true"?
Я делаю приложение для телефонов, но я не хочу, чтобы их можно было использовать на планшетах. Не знаю почему. Я использую это в своем файле манифеста android:
android:xlargeScreens="true"
Я получаю эту ошибку:
ошибка: не найден идентификатор ресурса для атрибута 'xlargeScreens' в пакете 'андроид'
Это мой файл манифеста:
<?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 ответов
похоже, вам нужно создать разные APKs для старых и новых версий. Выезд из блога, размещенного наhttp://android-developers.blogspot.com/search/label/Android%20Market о поддержке нескольких APK: "поддержка нескольких APK дает вам множество способов управления распространением приложений. Например, вы можете использовать его для создания отдельных APKs для телефонов и планшетов под одним и тем же списком продуктов."
пожалуйста, проверьте ваш цель сборки проекта для поддержки экрана xlarge ваша цель сборки проекта должна быть по крайней мере android 2.3.3 adk.
В Eclipse -?щелкните правой кнопкой мыши на project - > Properties - > Android - > выберите Project Build Tagrget как 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 Level 9 для android:xlargeScreens
на AndroidManifest.xml
.
для этого убедитесь в своем вы target=android-9
или выше. Это также может быть установлено с помощью свойств проекта, в разделе Android.
проблема в вашем minSdkVersion
.
на xlargeScreens
-атрибут был введен в API-Level 9. Поскольку вы указали, что ваше приложение, вероятно, будет работать под API-уровнем 4, android не может найти этот атрибут.
изменить minSdkVersion
-атрибут 11
и это должно сработать.
на targetSdkVersion
-атрибут, который вы установили, чтобы быть 11
указывает только на то, что приложение было разработано для этой версии (так что это "рекомендуется"), но minSdkVersion
указывает минимальный уровень API, см. здесь.
на что установлен уровень API? В документации говорится, что для этого требуется API 9 или выше. 9 является 2.3. См.этой ссылка, которая говорит:
для Android:xlargeScreens указывает, поддерживает ли приложение большой экран форм-факторов. Экран очень большим дисплеем является дисплей это значительно больше, чем "большой" экран, такой как таблетка (или что-то большее) и может потребовать особого ухода на часть приложения, чтобы хорошо использовать оно, хотя оно может положиться на изменение размера системы для заполнения экрана. Значение по умолчанию для этого на самом деле варьируется между некоторыми версиями, так что лучше, если вы явно объявляйте этот атрибут все время. Остерегайтесь, что установка его "false" обычно включает режим совместимости экрана. Этот атрибут был введен в API уровня 9.
android: xlargeScreens:
Этот атрибут был введен в API Уровень 9 (Android 2.3.3). Если у вас есть цель сборки меньше, чем уровень API 9, то вы получите ошибку "No resource identifier found for attribute 'xlargeScreens' in package 'android"
Установите цель сборки в API Уровень 9 или выше, и эта ошибка исчезнет.