Failure [INSTALL_FAILED_OLDER_SDK]

问题描述:

Android Studio写的程序,想在安卓2.3.3(对应的sdk版本是10)虚拟器上运行,报Failure [INSTALL_FAILED_OLDER_SDK]错误。

 

分析与解决过程:

网上都说是因为程序源码下的“AndroidManifest.xml”文件中定义了“minSdkVersion”的原因,将其删除就可以解决问题。

可是我源码下的“AndroidManifest.xml”文件中根本就没有“minSdkVersion”内容【确实没有】,在源码各个目录挨个查找,发现在“app\build\intermediates\manifests\full\debug”目录下也有个“AndroidManifest.xml”文件,里面定义了如下内容:

【在工程里面是看不到这个文件夹的,必须要在工程文件夹才能看到】

【打开后发现真的有!!!根据这个作者的指示改掉了】

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="21" />

马上将上述两个值都修改为10,再运行问题依旧,而且该文件又还原为修改前的版本了。可见这个文件是在每次编译时自动生成的,源头不在这!

【我的情况到这儿就可以了-u-运行了起来。可能是原先设置运行版本的时候调的比较高。纳闷儿为什么工程栏里面不显示这些东西?还有,用eclipse打开Android Studio编写的程序会出问题,会分裂成三个工程,好奇怪!】

可是没有别的xml文件了,那就找找非xml文件吧,用文本方式打开看看是否有相关定义,最后发现在程序源码的app目录下有个“build.gradle”文件,内容如下:

image

将上图中的两个值修改为10后,程序就可以在安卓2.3.3虚拟设备中运行了!

 【我的也有,没有改就可以运行了,为什么呢?】

【然而我也试着改了改】

解决方案:

修改源码app目录下的“build.gradle”文件,将其中的minSdkVersion 、targetSdkVersion 修改为跟虚拟设备的安卓API版本一致即可。

 

PS:

minSdkVersion 、targetSdkVersion 的解释参考:

http://blog.csdn.net/jspamd/article/details/17467835

解决方法来源:http://blog.sina.com.cn/s/blog_709548200102vfmu.html

万分感谢博主!

posted @ 2015-06-22 18:35  闫大盼  Views(2482)  Comments(0Edit  收藏  举报