Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 验证错误,或在保持兼容性的同时使用overridePendingTransition?_Android_Backwards Compatibility_Verifyerror - Fatal编程技术网

Android 验证错误,或在保持兼容性的同时使用overridePendingTransition?

Android 验证错误,或在保持兼容性的同时使用overridePendingTransition?,android,backwards-compatibility,verifyerror,Android,Backwards Compatibility,Verifyerror,我有一个应用程序,它使用overridePendingTransition在从一个活动转换到另一个活动时执行一些自定义动画。这是在Android 2.0中提供的,但我想让应用程序在Android 1.6上工作。我想如果我只是检查了android.os.Build.VERSION.SDK_INT>android.os.Build.VERSION_CODES.DONUT,如果没有检查,就不要执行overridePendingTransition 但是,我得到了一个VerifyError,我认为这是由

我有一个应用程序,它使用overridePendingTransition在从一个活动转换到另一个活动时执行一些自定义动画。这是在Android 2.0中提供的,但我想让应用程序在Android 1.6上工作。我想如果我只是检查了android.os.Build.VERSION.SDK_INT>android.os.Build.VERSION_CODES.DONUT,如果没有检查,就不要执行overridePendingTransition

但是,我得到了一个VerifyError,我认为这是由以下原因引起的: VFY:无法解析虚拟方法346:../../Login:overridePendingTransition(II)V

是否不可能根据SDK版本有条件地使用更新的功能

是否不可能根据SDK版本有条件地使用更新的功能

是的

我猜您的代码如下所示:

if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
  overridePendingTransition(...);
}
如果我是对的,那就行不通了。当类被加载时,VM将尝试查找
overridePendingTransition()
,而不是在执行
if()
语句时

相反,您应该能够做到这一点:

if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
  SomeClassDedicatedToThisOperation.overridePendingTransition(this, ...);
}
其中
someclassspecialedtothisooperation
中的
overridePendingTransition()
的实现只调用提供的
活动上的
overridePendingTransition()

只要
某个专用于操作的类
没有在其他任何地方使用,它的类将不会被加载,直到您进入
if()
测试,并且您将不会得到
验证错误