React Native集成PayooSDK后Release包崩溃问题求助
React Native集成PayooSDK Release APK崩溃解决方案
报错核心分析
崩溃根源是java.lang.NoSuchFieldException: EXTERNAL,这是因为Release构建时的R8/ProGuard代码优化移除了PayooSDK反射依赖的EXTERNAL字段,Debug环境默认关闭优化所以运行正常。
解决方案
添加ProGuard规则保留SDK相关类和字段
在android/app/proguard-rules.pro文件中补充以下规则,防止SDK核心类、字段被混淆移除:# 完整保留PayooSDK所有类、方法与字段 -keep class vn.payoo.paymentsdk.** { *; } # 保留反射所需的EXTERNAL字段 -keepclassmembers class ** { public static final java.lang.String EXTERNAL; } # 若SDK依赖Gson等序列化库,需同步保留对应类(按需添加) -keep class com.google.gson.** { *; }验证依赖配置一致性
检查android/app/build.gradle中PayooSDK的依赖是否同时适配所有构建变体,避免仅在Debug环境引入:dependencies { implementation 'vn.payoo:paymentsdk:x.x.x' // 替换为实际使用的SDK版本 }重新构建Release包
执行清理与构建命令:cd android ./gradlew clean ./gradlew assembleRelease临时排查方案(不建议长期使用)
若添加规则后仍有问题,可临时关闭R8优化验证是否为混淆导致,在android/gradle.properties中添加:android.enableR8=false
内容的提问来源于stack exchange,提问作者Tam Nguyen
相关产品推荐
相关产品推荐

