【发布时间】:2019-01-04 08:52:45
【问题描述】:
我最近修改了我的应用程序以使用 AndroidX 库,并尝试在 AppCompatActivity 中使用 androidx.biometric.BiometricPrompt。
但是,我得到以下异常:
java.lang.NoSuchMethodError: 没有虚拟方法getMainExecutor()Ljava/util/concurrent/Executor
我尝试改用应用程序上下文,但也没有用。
import androidx.biometric.BiometricPrompt;
import androidx.appcompat.app.AppCompatActivity;
class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
final BiometricPrompt.PromptInfo info = new BiometricPrompt.PromptInfo.Builder()
.setTitle("Login")
.setSubtitle("Perform login with your fingerprint")
.setNegativeButtonText("Cancel")
.build();
new BiometricPrompt(this, getMainExecutor(), onFingerprintAuthentication())
.authenticate(info, getCryptoObject());
}
}
这些是我要导入的 AndroidX 库
implementation 'androidx.core:core:1.1.0-alpha03'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha01'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.annotation:annotation:1.0.1'
implementation 'androidx.mediarouter:mediarouter:1.1.0-alpha01'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.biometric:biometric:1.0.0-alpha03'
【问题讨论】:
-
getMainExecutor在 API 级别 28 中添加到Context。但是,ContextCompat(androidx.core.content.ContextCompat) 有一个静态的getMainExecutor方法,您应该可以使用它。 -
@Michael 非常感谢!这解决了我的问题。