Android Studio构建项目遇PayUmoney依赖及Manifest合并错误
问题背景
导入com.payumoney.sdkui.ui.utils.PayUmoneyFlowManager时提示package com.payumoney.sdkui.ui.utils does not exist,添加依赖implementation 'com.payumoney.sdkui:plug-n-play:1.6.1'后,又出现Manifest合并失败错误。根源是依赖的payu-custom-browser:7.9.0中PreLollipopPaymentsActivity未显式设置android:exported属性(Android 12+要求带intent filter的组件必须声明该属性),同时存在命名空间重复警告。
解决方案
1. 确认依赖配置
在模块级build.gradle(或build.gradle.kts)中确保已添加PayUmoney SDK依赖:
implementation 'com.payumoney.sdkui:plug-n-play:1.6.1'
如果有条件,建议升级到该SDK的最新稳定版本,新版本通常已适配Android 12+的Manifest要求,能从根源避免问题。
2. 手动修复Manifest合并错误
若暂时无法升级SDK,可在项目的AndroidManifest.xml中覆盖库中的Activity配置,补充android:exported属性:
<!-- 先确保Manifest根标签已引入tools命名空间 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- 覆盖payu-custom-browser中的Activity配置 --> <activity android:name="com.payu.custombrowser.PreLollipopPaymentsActivity" android:exported="false" tools:node="merge" /> </manifest>
注:
android:exported设为false即可,因为该Activity是SDK内部使用,无需对外暴露。tools:node="merge"用于保留原Activity的其他配置,避免覆盖丢失。
3. 清理重建项目
完成配置后,执行以下操作确保生效:
- 执行
Build > Clean Project清理缓存 - 执行
Build > Rebuild Project重新构建 - 同步Gradle:
File > Sync Project with Gradle Files
命名空间重复警告一般不影响构建,只要自己的Manifest中没有重复定义同一命名空间即可忽略。
内容的提问来源于stack exchange,提问作者Virendrasinh R

