Java Параметр, указанный как ненулевой, имеет значение null Метод IllegalException kotlin .jvm.internal.Intrinsics - PullRequest
1 голос
/ 13 июля 2020

Этот вопрос уже задавался, но на него нет ответа, и я ищу помощь в этом. Я хочу интегрировать полосу в свое приложение android firebase, но продолжаю получать сообщение об ошибке java .lang.IllegalArgumentException: параметр, указанный как ненулевой, имеет значение null: method kotlin .jvm.internal.Intrinsics.checkParameterIsNotNull. Я не использую kotlin в своем проекте, а java, поэтому я не уверен, откуда kotlin.

Ошибка

E / AndroidRuntime: FATAL EXCEPTION: основной процесс: com.myapp.app, PID: 26686 java .lang.IllegalArgumentException: параметр, указанный как ненулевое значение, имеет значение null: метод kotlin .jvm.internal.Intrinsics.checkParameterIsNotNull, параметр clientSecret в com.stripe. android .model.ConfirmPaymentIntentParams $ Companion.createWithPaymentMethodCreateParams (Неизвестный источник: 29) в com.stripe. android .model.ConfirmPaymentIntentParams $ Companion.createWithPaymentMethodCreateParams.Stription19. model.ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams (Неизвестный источник: 14) по адресу com.myapp.app.PaymentPageActivity.lambda $ startCheckout $ 0 $ PaymentPageActivity (PaymentPageActivity. java: 84 $) по адресу com.myapp.Appi. .onClick (Неизвестный источник: 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();
        }


    }
...