最近想给女朋友买个小米手环,结果淘宝客服说要求Android版本4.4以上,蓝牙4.0以上。
百度手机型号查了半天参数,发现我的2个手机一个蓝牙版本不够,一个android版本4.2,怎么办呢?先下个小米手环APP(现改为小米运动APP)试试吧,结果安装时候老安装失败:Failure [INSTALL_FAILED_OLDER_SDK]
根据意思好像是SDK版本太老?百度了一下,网上都说是因为程序源码下的“AndroidManifest.xml”文件中定义了“minSdkVersion”的原因,唉,我也没有人家的源码,也无法修改,只好期待女朋友手机sdk版本可以了。
记不清sdk与api版本对应的可以看下这里:SDK与API版本对应关系
在查阅资料的时候考虑到自己以后的代码可能也会遇到这种问题,把解决办法记录如下:
1.打开源码目录下的AndroidManifest.xml文件,然后注释掉或者删除掉这行:
<uses-sdk android:minSdkVersion="4" />
2.考虑到可能有使用gradle等构件工具的情况,光进行上述操作并不奏效,原因是在自动构件时会重新生成AndroidManifest.xml文件。那我们就要追根溯源,找到gradle的构件文件,进行相应修改.
- 解决方案:
- 修改源码app目录下的“build.gradle”文件,将其中的minSdkVersion 、targetSdkVersion 修改为跟虚拟设备的安卓API版本一致即可。
3.还有网友是Ubuntu下编译Android,通过mmm编译,如果出现这个错误,就需要在/build/core/version_defaults.mk文件中这一段
ifeq “” “$(DEFAULT_APP_TARGET_SDK)”
# This is the default minSdkVersion and targetSdkVersion to use for
# all .apks created by the build system. It can be overridden by explicitly
# setting these in the .apk’s AndroidManifest.xml. It is either the code
# name of the development build or, if this is a release build, the official
# SDK version of this release.
ifeq “REL” “$(PLATFORM_VERSION_CODENAME)”
DEFAULT_APP_TARGET_SDK := $(PLATFORM_SDK_VERSION)
else
DEFAULT_APP_TARGET_SDK := $(PLATFORM_VERSION_CODENAME)
endif
endif
将DEFAULT_APP_TARGET_SDK直接赋值相应的API等级即可。