java - 指定为非 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();
}
}
解决方案
推荐阅读
- latex - 如何在 LaTex 中的枚举之间左对齐文本?
- ruby-on-rails - Rails 控制台未加载环境
- jquery - Jquery 上的“(intermediate.value).apply 不是函数”
- gtk - 这是什么小部件?/如何制作这个小部件?
- java - Java 中的 Midi 播放
- docker - 在系统(linux)上运行容器的依赖项是什么?
- sql - 如何在 PostgreSQL 中选择一个类别中的第一个观察值
- python-3.x - 将数据从 csv 读取到类对象列表中 - Python
- powershell - Powershell Search-UnifiedAuditLog 并导出 AuditData 字段
- node.js - 从节点连接到逻辑复制/流式传输还是转到?