我正在制作手机应用,但我不想在平板电脑上使用它们。我不知道为什么不能。我在我的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>
我该怎么办?
答案 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 或更高版本,此错误将消失。