Не могу использовать андроид: 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>
Что мне делать?
Ответы
Ответ 1
Похоже, вам нужно создавать разные APK для старых и новых версий. Оформить блог в блоге http://android-developers.blogspot.com/search/label/Android%20Market о поддержке нескольких APK: "Поддержка нескольких APK дает вам множество способов управления распределением приложений., вы можете использовать его для создания отдельных APK для телефонов и планшетов под одним и тем же списком продуктов."
Ответ 2
Пожалуйста, проверьте проект Build Target. Чтобы поддерживать экран xlarge, ваша цель сборки проекта должна быть atleast android 2.3.3 adk.
В Eclipse -? щелкните правой кнопкой мыши по проекту → Свойства → Android → Выберите проект Build Tagrget как 2.3.3 или далее
Ответ 3
Мое приложение поддерживает версии для Android версии 1.5 до последней версии, и это то, что у меня есть в моем манифесте:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true" />
Это то, что появляется на сайте разработчика Android для моего приложения:
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, фильтровать ваше приложение из поиска на планшете, поскольку у них нет этой функции?
Ответ 4
Вам необходимо использовать хотя бы API API уровня 9 для android:xlargeScreens
для распознавания в AndroidManifest.xml
.
Для этого убедитесь, что в вашем default.properties
файле есть target=android-9
или выше. Это также можно установить с помощью "Свойства проекта" в разделе Android.
Ответ 5
Проблема заключается в вашем minSdkVersion
.
Атрибут xlargeScreens
был введен в API-уровень 9. Поскольку вы указали, что ваше приложение, вероятно, будет работать под API-уровнем 4, андроид не сможет найти этот атрибут.
Измените атрибут minSdkVersion
на 11
, и он должен работать.
Атрибут targetSdkVersion
, который вы установили как 11
, указывает только на то, что приложение было разработано для этой версии (поэтому рекомендуется ")", но minSdkVersion
указывает минимальный уровень API, см. здесь.
Ответ 6
Каков ваш уровень API? В документации говорится, что для этого требуется API 9 или выше. 9 - 2,3. См. эту ссылку, в которой говорится:
android: xlargeScreens Указывает, поддерживает ли приложение дополнительные большие экранные форм-факторы. Экран xlarge определяется как экран что значительно больше, чем "большой" экран, например планшет (или что-то большее) и может потребовать особой чтобы использовать его, хотя он может полагаться на изменение размера системы для заполнения экрана. Значение по умолчанию для этого на самом деле, зависит от некоторых версий, поэтому лучше, если вы явно объявлять этот атрибут всегда. Остерегайтесь, что настройка "false" обычно включает режим совместимости с экраном. Эта атрибут был введен в уровне API 9.
Ответ 7
android: xlargeScreens:
Этот атрибут был введен на уровне API 9 (Android 2.3.3). Если у вас есть цель сборки меньше, чем уровень API 9, вы получите сообщение об ошибке "No resource identifier found for attribute 'xlargeScreens' in package 'android"
Установите цель сборки для уровня API 9 или выше, и эта ошибка исчезнет.