FAILED_OLDER_SDK

因为APK编译是在高版本SDK下编译生成的,但是手机设备是低版本。

具体可以查看AndroidManifest.xmlandroid:minSdkVersion的值。

而且,随着安卓版本的不断更新,新的API不断提供,有时候高版本的API会在低版本发生crash。

如果minSdkVersion设置过低,在build的时候,会报错(Call requires API level (current min is ))。

为了编译可以通过,可以添加@SuppressLint("NewApi")或者@TargeApi($API_LEVEL)注解,但这样只是编译通过,运行时依然会Crash。

若要兼容低版本,需要判断运行时的版本,在低版本系统中不调用此方法,同时为了保证功能的完整性,提供低版本功能实现。SDK版本(一个自然数字)可以通过下面的代码确定:

int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
if (currentapiVersion >= android.os.Build.VERSION_CODES.FROYO) {
     // 使用高版本的API 
} else {
     // 使用低版本的API 
}