集成PayUCheckoutPro支付网关时找不到Activity类报错如何解决
安卓集成PayUCheckoutPro找不到Activity问题解决方法
根因说明
PayU官方SDK的所有组件Activity默认会通过Android的Manifest合并机制自动注入到主项目Manifest中,你遇到反复找不到不同Activity的问题,本质是Manifest合并流程失效/被阻断,或类被混淆删除导致的。
分步解决方案
1. 开启Manifest合并功能
检查你项目主module的build.gradle文件,确认android节点下没有关闭Manifest合并的配置:
android { // 删掉下面这行,或者把false改成true // manifestMergerEnabled false }
2. 补全仓库配置
检查项目级build.gradle(或新版本的settings.gradle)的repositories节点,确认已添加PayU所需的maven仓库:
repositories { maven { url "https://jitpack.io" } google() mavenCentral() }
3. 补充混淆规则
如果你的项目开启了R8/Proguard混淆,需要在proguard-rules.pro中添加PayU相关类的防混淆规则,避免类被删除:
-keep class com.payu.** { *; } -dontwarn com.payu.**
4. 修正Activity声明配置
如果以上配置都确认无误仍有报错,再手动补全缺失的Activity声明,注意安卓12及以上版本必须添加android:exported属性,无需额外添加无用的intent-filter:
<!-- PayU支付页 --> <activity android:name="com.payu.ui.view.activities.CheckoutActivity" android:exported="true" /> <!-- UPI支付回调页 --> <activity android:name="com.payu.upisdk.upiintent.PaymentResponseUpiSdkActivity" android:exported="true" />
如果后续仍报其他Activity找不到,按同样格式将报错中提示的Activity类添加到Manifest即可。
5. 检查编译版本适配
确认你项目的compileSdkVersion≥31,符合PayUCheckoutPro 1.7.5版本的最低编译要求,过低的编译版本会导致Manifest合并失败。
额外排查技巧
打开项目的AndroidManifest.xml文件,点击底部的「Merged Manifest」标签,可查看完整的合并后Manifest内容和合并过程中的错误日志,直接定位冲突点。
内容的提问来源于stack exchange,提问作者hardik koladiya
相关产品推荐
相关产品推荐

