问题描述:
Android Studio写的程序,想在安卓2.3.3(对应的sdk版本是10)虚拟器上运行,报Failure[INSTALL_FAILED_OLDER_SDK]错误。
分析与解决过程:
网上都说是因为程序源码下的“AndroidManifest.xml”文件中定义了“minSdkVersion”的原因,将其删除就可以解决问题。
可是我源码下的“AndroidManifest.xml”文件中根本就没有“minSdkVersion”内容,在源码各个目录挨个查找,发现在“appbuildintermediatesmanifestsfulldebug”目录下也有个“AndroidManifest.xml”文件,里面定义了如下内容:
<uses-sdkandroid:minSdkVersion="16"android:targetSdkVersion="21"/>
马上将上述两个值都修改为10,再运行问题依旧,而且该文件又还原为修改前的版本了。可见这个文件是在每次编译时自动生成的,源头不在这!
可是没有别的xml文件了,那就找找非xml文件吧,用文本方式打开看看是否有相关定义,最后发现在程序源码的app目录下有个“build.gradle”文件,内容如下:
将上图中的两个值修改为10后,程序就可以在安卓2.3.3虚拟设备中运行了!
解决方案:
修改源码app目录下的“build.gradle”文件,将其中的minSdkVersion 、targetSdkVersion修改为跟虚拟设备的安卓API版本一致即可。
PS:
minSdkVersion 、targetSdkVersion 的解释参考:
http://blog.csdn.net/jspamd/article/details/17467835