分享

android:targetSdkVersion相关

 quasiceo 2014-05-29

android:targetSdkVersion相关

最近做一个应用时,在android4.0以下版本中,显示都正常。但是到了4.0以上的版本,那些没有物理按键,像BACK, HOME,MENU键都是虚拟按键时,发现了个奇怪的问题, MENU键不见了…… 开始还以为是代码里的android:theme="@android:style/Theme.NoTitleBar" 、getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);这些全屏等引起的。纠结好久,才听说是由AndroidMainfest.xml文件里的

   <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="16" /> 和project.properties文件里的target=android-17这几个和SDK版本相关的东西引起的。反复测试了无数遍,终于找出问题所在,原来是android:targetSdkVersion这个引起的,跟android:minSdkVersion和target=android-17无关。  先来讲下这三个值的作用

android:minSdkVersion 这个是指你的应用,所要求的目标机器上SDK的最低版本。如果这里设置了android:minSdkVersion="8"的话,那么也就是说,你的应用,要求最低的SDK是android2.2,低于这个版本的SDK的机子上,你的应用跑不起来,也就是说不支持比android2.2还低的版本。

target=android-17 这个是指你当前编译时用到的SDK的版本, android-17 也就是对应的android4.2

android:targetSdkVersion="16",这个才是罪魁祸首。它的意思是,你的应用的目标版本是16,也就是android4.1.2。 如果这里设置了,那么表示,你的应用,在android4.1.2的SDK上测试了没问题了,MENU键之类的,都能正常显示出来,那么,把你的应用装到4.1.2的SDK的机子上时,就会直接用android4.1.2上对MENU按建的处理方法,也就是用虚拟键,而没有物理键。 但是实际是你的应用在4.1.2上,MENU虚拟键是显示不出来的,所以就出问题了。 解决的办法就是,将android:targetSdkVersion值改为4.1以下,也就是改为15以下,因为在android4.0以下的版本中,都是有MENU键的,所以如果检测到这个值为15以下时,会强制显示MENU键。当然,这个值,最好不要去设,也就是直接删掉这行,在ANdroidMainfest.xml里,改成如下所示:

   <uses-sdk android:minSdkVersion="8"/> 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多