我是第一次接触react-native和支付网关并创建一个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)}`);
});当我在调试模式下运行应用程序时,代码可以工作,但当我使用bundleRelease和assembleRelease创建apk时。
apk工作正常,直到我尝试付款。
我的结论是:当apk转到RazorpayCheckout.open函数调用时,应用程序崩溃。我不知道如何调试它,在这里走进了死胡同。
发布于 2020-06-18 20:39:41
当我取消Razor pay,或者它的going success应用程序在没有任何日志的情况下崩溃时,我也面临着同样的问题。
解决方案很简单:-
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 step转到android>app>build.gradle并在buildTypes>release中查找buildTypes添加一些行
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相同的操作
发布于 2020-07-07 20:38:02
我也有同样的问题。我刚停用了程序规则。enableProguardInReleaseBuilds = false
https://stackoverflow.com/questions/57974354
复制相似问题