无法使用android:xlargeScreens =“true”?

时间:2011-08-08 15:25:30

标签: android manifest tablet screen-size

我正在制作手机应用,但我不想在平板电脑上使用它们。我不知道为什么不能。我在我的android清单文件中使用它:

android:xlargeScreens="true"

我收到此错误:

错误:在'android'包中找不到属性'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 个答案:

答案 0 :(得分:13)

请检查您的项目构建目标要支持xlarge屏幕,您的项目构建目标应该至少是android 2.3.3 adk。

在Eclipse中 - ?右键单击项目 - &gt;属性 - &gt; Android - &gt;选择Project Build Tagrget为2.3.3或更高版本

答案 1 :(得分:6)

我的应用程序支持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这样的权限从平板电脑上搜索过滤你的应用程序,因为他们没有这个功能?

答案 2 :(得分:4)

您似乎需要为旧版本和新版本构建不同的APK。查看http://android-developers.blogspot.com/search/label/Android%20Market上发布的关于多个APK支持的博客:“多个APK支持为您提供了多种控制应用分发的方法。例如,您可以使用它为同一产品下的手机和平板电脑创建单独的APK列表“。

答案 3 :(得分:3)

您需要在android:xlargeScreens中识别AndroidManifest.xml至少使用android API级别9。

为此,请确保default.properties文件中的target=android-9或更高版本。这也可以使用Android部分中的项目属性进行设置。

答案 4 :(得分:2)

问题在于minSdkVersion

{ - 1}} - 属性是在API级别9中引入的。由于您指定应用程序可能在API级别4下运行,因此android无法找到此属性。

xlargeScreens - 属性更改为minSdkVersion,它应该有效。

11 - 属性,您设置为targetSdkVersion仅表示应用程序是针对此版本开发的(因此它是“推荐”),但11指定最低API级别,请参阅here

答案 5 :(得分:1)

您的API级别设置为什么?它在文档中说它需要API 9或更高版本。 9是2.3。请参阅this链接,其中包含:

  

android:xlargeScreens指示应用程序是否支持额外的   大屏幕形状因素。 xlarge屏幕定义为屏幕   这比“大”屏幕(例如平板电脑)大得多   (或更大的东西),可能需要特别小心   应用程序的一部分,以充分利用它,虽然它可能依赖   通过系统调整大小以填充屏幕。这个的默认值   实际上在某些版本之间有所不同,所以如果你这样做会更好   始终显式声明此属性。要小心设置它   “false”通常会启用屏幕兼容模式。这个   属性是在API级别9中引入的。

答案 6 :(得分:1)

android:xlargeScreens :
此属性是在 API级别9(Android 2.3.3)中引入的。如果您的构建目标小于API级别9,那么您将收到错误"No resource identifier found for attribute 'xlargeScreens' in package 'android"
将构建目标设置为 API level 9 或更高版本,此错误将消失。