我在很多测试中都遇到了同样的错误:
java.lang.NoClassDefFoundError: Failed resolution of:
Landroid/view/autofill/AutofillManager$AutofillCallback;
基本上我的代码介绍了android.view.autofill.AutofillManager.AutofillCallback
,但 AutofillCallback 仅适用于 API 26 及更高版本。
我猜这是错误的原因。有没有办法解决这个问题?换句话说,有没有办法只为特定的构建版本有条件地导入AutofillManager
和?AutofillCallback
这是我介绍AutofillManager
and的方式AutofillCallback
。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// ... other code not shown
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
final AutofillManager autofillManager = getContext().getSystemService(AutofillManager.class);
if (autofillManager != null && autofillManager.isAutofillSupported())
{
autofillManager.registerCallback(new AutofillManager.AutofillCallback()
{
@Override
public void onAutofillEvent(@NonNull View view, int event)
{
super.onAutofillEvent(view, event);
// other code not shown
}
});
}
}