Разве невозможно использовать новые функции, условно основанные на версии SDK?
Да, это так.
Я собираюсь догадаться, что ваш код выглядиткак это:
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
overridePendingTransition(...);
}
Если я прав, то это не сработает.ВМ будет пытаться найти overridePendingTransition()
при загрузке класса, а не при выполнении этого оператора if()
.
Вместо этого вы сможете сделать это:
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
SomeClassDedicatedToThisOperation.overridePendingTransition(this, ...);
}
где реализация overridePendingTransition()
в SomeClassDedicatedToThisOperation
просто вызывает overridePendingTransition()
для предоставленного Activity
.
До тех пор, пока SomeClassDedicatedToThisOperation
не используется где-либо еще, его класс не будет загружен, пока вы невнутри вашего if()
теста, и вы не получите VerifyError
.