android-studio-3.1 - Android Studio 3中Executor编译报错

标签 android-studio-3.1

我的代码在下面并按照这篇文章在 Android Studio 3 中实现 Recaptcha:https://developer.android.com/training/safetynet/recaptcha.html

btn_Login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(final View view) {
        SafetyNet.getClient(this).verifyWithRecaptcha("api key")
            .addOnSuccessListener((Executor) this,
                    new OnSuccessListener<SafetyNetApi.RecaptchaTokenResponse>() {
                        @Override
                        public void onSuccess(SafetyNetApi.RecaptchaTokenResponse response) {
                            String userResponseToken = response.getTokenResult();
                            if (!userResponseToken.isEmpty()) {
                            }
                        }
                    })
            .addOnFailureListener((Executor) this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    if (e instanceof ApiException) {
                        ApiException apiException = (ApiException) e;
                        int statusCode = apiException.getStatusCode();
                    } else {
                    }
                }
            });

    }
});

我在下面遇到编译错误。

可转换类型:无法将匿名 android.view.view.onclicklistener 强制转换为 java.util.concurrent.executor

我错过了什么吗?

最佳答案

我使用了下面的代码,现在一切正常。

确保在activity中实现Executor

btn_Login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(final View view) {
        SafetyNet.getClient(Activity.this).verifyWithRecaptcha("")
            .addOnSuccessListener((Activity) MyActivity.this,
                new OnSuccessListener<SafetyNetApi.RecaptchaTokenResponse>() {
                    @Override
                    public void onSuccess(SafetyNetApi.RecaptchaTokenResponse response) {
                        // Indicates communication with reCAPTCHA service was
                        // successful.
                        String userResponseToken = response.getTokenResult();
                        if (!userResponseToken.isEmpty()) {
                            // Validate the user response token using the
                            // reCAPTCHA siteverify API.
                        }
                    }
                })
            .addOnFailureListener((Activity) MyActivity.this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    if (e instanceof ApiException) {
                        // An error occurred when communicating with the
                        // reCAPTCHA service. Refer to the status code to
                        // handle the error appropriately.
                        ApiException apiException = (ApiException) e;
                        int statusCode = apiException.getStatusCode();

                    } else {
                    }
                }
            });
    }
});

关于android-studio-3.1 - Android Studio 3中Executor编译报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49951250/

相关文章:

java - 安卓工作室版本3.1.1

java - 找不到 builder.jar (com.android.tools.build :builder:3. 1.0)

android - Android Studio 3.1.2 中的属性位置在哪里?

Windows 10 aapt2 上的 Android studio 3.1 缺少 27.0.3 sdk

android - 如何解决找不到构建工具修订版 26.0.2?

Android Studio 更新 3.1 开始出现 502 Gateway gradle dependencies error

android - Android 3.1 稳定版更新后的 Gradle Sync 问题 Kotlin

android - 由 : java. lang.IllegalArgumentException : couldn't make a guess for com. example.example.databinding.ContentClassApplicationMyClass1Binding 引起

java - 应用程序类可以是包私有(private)的吗?