title: Java Parameter specified as non-null is null IllegalException method kotlin.jvm.internal.Intrinsics
body: <p>This question has been asked already but it doesn't have an answer and i'm looking for help in this.
  I want to integrate stripe to my android firebase app.But I keep getting the error java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull. I am not using kotlin in my project but java so I'm not sure where kotlin comes from.</p>
  <p>Error</p>
  <blockquote>
  <p>E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.myapp.app, PID: 26686
  java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter clientSecret
  at com.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$lysPf2qYJjjVdPRqihuLblLplpI.onClick(Unknown Source:2)</p>
  </blockquote>
  <pre><code>  //My code 
      
       // Configure the SDK with your Stripe publishable key so it can make requests to Stripe
          stripe = new Stripe(
                  getApplicationContext(),
                  Objects.requireNonNull(&quot;stripe_key&quot;)
          );
          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) -&gt; {
              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&lt;PaymentIntentResult&gt; {
          @NonNull private final WeakReference&lt;PaymentPageActivity&gt; activityRef;
  
          PaymentResultCallback(@NonNull PaymentPageActivity activity) {
              activityRef = new WeakReference&lt;&gt;(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, &quot;Paymen success&quot;, Toast.LENGTH_SHORT).show();
  
              } else if (status == PaymentIntent.Status.RequiresPaymentMethod) {
                  // Payment failed
                  Toast.makeText(PaymentPageActivity.this, &quot;Failed&quot;, 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, &quot;Error &quot; +e.toString(), Toast.LENGTH_SHORT).show();
          }
  
  
      }
  </code></pre>