我是本机和支付网关的新手,并创建了一个Android应用, 我在用 “ react”:“ 16.9.0”, “ react-native”:“ 0.60.5”, “ react-native-razorpay”:“ ^ 2.1.30”,
我也使用了react-native链接react-native-razorpay链接了
,导入的软件包为
从“ react-native-razorpay”导入RazorpayCheckout;
,呼叫网关为:
RazorpayCheckout.open(options).then((data) => {
.............
alert(`Success: ${JSON.stringify(data)}`);
}).catch((error) => {
alert(`Error: ${JSON.stringify(error)}`);
});
当我在调试模式下运行应用程序时代码有效,但是当我使用以下命令创建apk时 bundleRelease和assembleRelease。
apk可以正常工作,直到我尝试付款。
我的结论:当apk转到RazorpayCheckout.open函数时,调用应用程序崩溃。我不知道如何调试它并在这里陷入僵局。
答案 0 :(得分:0)
我还面临着与取消Razor薪酬或其成功的应用程序崩溃而没有任何日志时相同的问题。
解决方案很简单:-
1步 在
中创建一个proguard-rules.pro文件名android>app
that should be : android/app/proguard-rules.pro
then paste below code inside proguard-rules.pro file
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-dontwarn com.razorpay.**
-keep class com.razorpay.** {*;}
-optimizations !method/inlining/*
-keepclasseswithmembers class * {
public void onPayment*(...);
}
2步 转到android> app> build.gradle并找到buildTypes 在buildTypes> release内部添加一些行
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
3步
如果要在调试模式下运行APK,请执行与调试步骤2相同的操作
答案 1 :(得分:0)
我遇到了同样的问题。我只是禁用了progaurd规则。
enableProguardInReleaseBuilds = false