首页 > 解决方案 > 指定为非 null 的 Java 参数为 null IllegalException 方法 kotlin.jvm.internal.Intrinsics

问题描述

已经问过这个问题,但没有答案,我正在寻求帮助。我想将条带集成到我的 android firebase 应用程序中。但我不断收到错误 java.lang.IllegalArgumentException:指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull。我没有在我的项目中使用 kotlin,而是使用 java,所以我不确定 kotlin 来自哪里。

错误

E/AndroidRuntime:致命异常:主进程:com.myapp.app,PID:26686 java.lang.IllegalArgumentException:指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,com 中的参数 clientSecret。 stripe.android.model.ConfirmPaymentIntentParams$Companion.createWithPaymentMethodCreateParams(Unknown Source:29) at com.stripe.android.model.ConfirmPaymentIntentParams$Companion.createWithPaymentMethodCreateParams$default(ConfirmPaymentIntentParams.kt:420) at com.stripe.android.model.ConfirmPaymentIntentParams .createWithPaymentMethodCreateParams(Unknown Source:14) at com.myapp.app.PaymentPageActivity.lambda$startCheckout$0$PaymentPageActivity(PaymentPageActivity.java:84) at com.myapp.app.-$$Lambda$PaymentPageActivity$lysPf2qYJjVdPRqihuLblLplpI.onClick(Unknown Source :2)

  //My code 
    
     // Configure the SDK with your Stripe publishable key so it can make requests to Stripe
        stripe = new Stripe(
                getApplicationContext(),
                Objects.requireNonNull("stripe_key")
        );
        startCheckout();
    }
    private void startCheckout() {
        // ...

        // Hook up the pay button to the card widget and stripe instance
        Button payButton = findViewById(R.id.payButton);
        payButton.setOnClickListener((View view) -> {
            CardInputWidget cardInputWidget = findViewById(R.id.cardInputWidget);
            PaymentMethodCreateParams params = cardInputWidget.getPaymentMethodCreateParams();
            if (params != null) {
                ConfirmPaymentIntentParams confirmParams = ConfirmPaymentIntentParams
                        .createWithPaymentMethodCreateParams(params, paymentIntentClientSecret);
                confirmParams.getPaymentMethodCreateParams();
                final Context context = getApplicationContext();
                stripe = new Stripe(
                        context,
                        PaymentConfiguration.getInstance(context).getPublishableKey()
                );
                stripe.confirmPayment(this, confirmParams);
            }
        });
    }

    // ...

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Handle the result of stripe.confirmPayment
        stripe.onPaymentResult(requestCode, data, new PaymentResultCallback(PaymentPageActivity.this));
    }

    // ...

    private final class PaymentResultCallback
            implements ApiResultCallback<PaymentIntentResult> {
        @NonNull private final WeakReference<PaymentPageActivity> activityRef;

        PaymentResultCallback(@NonNull PaymentPageActivity activity) {
            activityRef = new WeakReference<>(activity);
        }

        @Override
        public void onSuccess(@NonNull PaymentIntentResult result) {
            final PaymentPageActivity activity = activityRef.get();
            if (activity == null) {
                return;
            }

            PaymentIntent paymentIntent = result.getIntent();
            PaymentIntent.Status status = paymentIntent.getStatus();
            if (status == PaymentIntent.Status.Succeeded) {
                // Payment completed successfully
                Gson gson = new GsonBuilder().setPrettyPrinting().create();
                Toast.makeText(PaymentPageActivity.this, "Paymen success", Toast.LENGTH_SHORT).show();

            } else if (status == PaymentIntent.Status.RequiresPaymentMethod) {
                // Payment failed
                Toast.makeText(PaymentPageActivity.this, "Failed", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onError(@NonNull Exception e) {
            final PaymentPageActivity activity = activityRef.get();
            if (activity == null) {
                return;
            }

            // Payment request failed – allow retrying using the same payment method

            Toast.makeText(PaymentPageActivity.this, "Error " +e.toString(), Toast.LENGTH_SHORT).show();
        }


    }

标签: javaandroidfirebase

解决方案


推荐阅读