代码如:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD)
ed.apply();
else ed.commit();
在Froyo中发出警告:
04-27 03:40:35.025:W / dalvikvm(3138):VFY:无法解析接口方法219:Landroid / content / SharedPreferences $ Editor; .apply()V
但据我所知,在较旧的设备中,这将是一个RuntimeError,会中止应用程序(请参阅here和here)。
这种有条件地在API 8(Froyo)及以上版本中有条件地调用新API(方法)的方法是否仍然需要延迟加载?
Dalvik有什么变化使这成为可能?
相关
答案 0 :(得分:4)
在Froyo发出警告
这是完全正常的。
但据我所知,在较旧的设备中,这将是一个会中止应用程序的RuntimeError
对于Android 1.x,是的。
这种有条件地在API 8(Froyo)及以上版本中有条件地调用新API(方法)的方法
是
Dalvik有什么变化使这成为可能?
遇到未识别的符号时,它不再“快速失败”,而是在执行语句时等待再次尝试解决它。通过检查SDK_INT
并确保未执行该语句,您不会崩溃。