15

我正在为手机制作应用程序,但我不希望它们在平板电脑上可用。我不知道为什么不能。我在我的 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>

我该怎么办?

4

7 回答 7

13

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

在 Eclipse -? 右键单击​​项目 -> 属性 -> Android -> 选择 Project Build Tagrget as 2.3.3 或更高版本

于 2011-08-08T15:32:24.947 回答
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 这样的权限,因为它们没有该功能,因此可以从平板电脑上的搜索中过滤您的应用程序?

于 2011-08-08T18:20:12.193 回答
4

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

于 2011-08-08T18:13:46.270 回答
3

您需要至少使用 android API Level 9android:xlargeScreens才能在AndroidManifest.xml.

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

于 2011-08-08T15:33:08.027 回答
2

问题是你的minSdkVersion.

-attribute 是在 API-Level 9 中引入的xlargeScreens。由于您指定您的应用程序可能会在 API-Level 4 下运行,因此 android 无法找到此属性。

minSdkVersion将-attribute更改为11它应该可以工作。

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

于 2011-08-08T15:33:57.693 回答
1

您的 API 级别设置为多少?它在文档中说它需要 API 9 或更高版本。9 是 2.3。请参阅链接,其中显示:

android:xlargeScreens 指示应用程序是否支持超大屏幕外形。xlarge 屏幕被定义为比“大”屏幕显着更大的屏幕,例如平板电脑(或更大的东西),并且可能需要应用程序方面特别小心才能充分利用它,尽管它可能依赖于调整大小由系统填满屏幕。此默认值实际上在某些版本之间有所不同,因此最好始终明确声明此属性。请注意,将其设置为“false”通常会启用屏幕兼容模式。此属性是在 API 级别 9 中引入的。

于 2011-08-08T15:33:45.610 回答
1

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

于 2012-04-23T08:10:54.490 回答