注意:解析XML资源时,Android会忽略XML属性 当前设备不支持。所以你可以安全地使用XML 只有较新版本支持的属性而不用担心 关于旧版本遇到该代码时破坏的问题。对于 例如,如果您设置targetSdkVersion =“11”,您的应用包括 默认情况下,ActionBar在Android 3.0及更高版本上。然后添加菜单项 到动作栏,你需要设置android:showAsAction =“ifRoom” 您的菜单资源XML。在跨版本的XML中执行此操作是安全的 文件,因为旧版Android只是忽略了 showAsAction属性(也就是说,您不需要单独的版本 RES /菜单-V11 /).
来源:http://developer.android.com/training/basics/supporting-devices/platforms.html
^尽管有这种说法,eclipse仍拒绝从同一网站here编译未经修改的片段基础版本。
给出的错误信息是:
不允许使用字符串类型(在'layout_width'中包含值 'match_parent')。
无论如何,我可以在XML中抑制此错误,就像某种静默标记表明它们只适用于特定的API级别一样?理想情况下,我希望项目在Eclipse中工作,并保持1.6向后兼容性。
注意:所有其他错误都与R没有生成有关,这是第一代错误。
清单文件包含行
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
答案 0 :(得分:1)
您可以在较新的API中进行编译,并且应用程序仍然可以在旧的API中工作,从而摆脱这些错误,只要您不使用.java文件中的任何不受支持的功能而不首先提供相关的检查。我认为我必须针对最低的API进行编译,而不是使用1.6 AVD进行测试以运行使用4.0编译的项目,并且它运行良好。
答案 1 :(得分:0)
您是否尝试使用“fill_parent”而不是“match_parent”?如果你想为不同的api级别设置不同的属性值,你可以通过将它们放在值-4(1.6 android)和值(其他所有)文件夹中来创建具有这些属性的样式xml条目。
答案 2 :(得分:0)
如果您要针对API 8或更低版本构建应用,则需要使用fill_parent
。也就是说,大多数开发人员最近使用API 8作为最小sdk 来支持,所以你真的应该考虑针对较新的API构建你的应用程序。