問題描述:
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,再運行問題依舊,而且該文件又還原爲修改前的版本了。可見這個文件是在每次編譯時自動生成的,源頭不在這!
可是沒有別的xml文件了,那就找找非xml文件吧,用文本方式打開看看是否有相關定義,最後發現在程序源碼的app目錄下有個“build.gradle”文件,內容如下:
將上圖中的兩個值修改爲10後,程序就可以在安卓2.3.3虛擬設備中運行了!
解決方案:
修改源碼app目錄下的“build.gradle”文件,將其中的minSdkVersion 、targetSdkVersion 修改爲跟虛擬設備的安卓API版本一致即可。
PS:
minSdkVersion 、targetSdkVersion 的解釋參考: