Android match_parent向后兼容性问题不会编译eclipse

时间:2012-06-28 20:17:33

标签: android compatibility

  

注意:解析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" />

3 个答案:

答案 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构建你的应用程序。