升级Flutter 3.24.0后因Razorpay包名冲突致构建失败
Flutter 3.24.0升级后Razorpay包名冲突导致Android构建失败
将Flutter版本升级至3.24.0一天后,项目出现Android构建失败,核心原因是Razorpay相关依赖的包名com.razorpay发生冲突,错误日志如下:
[com.razorpay:checkout:1.6.40] /Users/..../.gradle/caches/transforms-3/8865b1e92255561aafb98c9aa637d5cd/transformed/jetified-checkout-1.6.40/AndroidManifest.xml Error: Package name 'com.razorpay' used in: com.razorpay:checkout:1.6.40, com.razorpay:standard-core:1.6.40. /Users/neerdev/Desktop/flutter_workspace/..../..../android/app/src/debug/AndroidManifest.xml Error: Validation failed, exiting FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:processDevelopmentDebugMainManifest'.
已尝试但无效的解决方案
- 将Razorpay Flutter库升级至
razorpay_flutter 1.3.7 - 清理并重建Gradle缓存(包括删除缓存目录)
- 执行命令
fvm flutter pub upgrade
相关配置信息
pubspec.yaml核心片段
publish_to: none environment: sdk: ">=2.19.0 <4.0.0" flutter: 3.24.0 dependencies: # ... 其他依赖省略 razorpay_flutter: ^1.3.7 # ... 其他依赖省略 dependency_overrides: http: ^0.13.4 intl: ^0.17.0
gradle-wrapper.properties
distributionUrl=https://services.gradle.org/distributions/gradle-7.4-all.zip
项目根目录build.gradle(classpath部分)
ext.kotlin_version = '1.8.10' dependencies { classpath 'com.android.tools.build:gradle:7.1.2' // START: FlutterFire Configuration classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1' // END: FlutterFire Configuration classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }
有效解决方案尝试
方案1:强制统一Razorpay Android依赖版本
在Android项目的app/build.gradle中,添加强制依赖配置,确保checkout和standard-core使用相同版本,避免包名冲突:
configurations.all { resolutionStrategy { force 'com.razorpay:checkout:1.6.39' force 'com.razorpay:standard-core:1.6.39' } }
说明:降级到1.6.39版本(该版本未出现包名重复问题),或者确认两者使用同一版本号,解决Manifest中包名重复的校验错误。
方案2:升级Android Gradle插件和Gradle版本
当前使用的AGP是7.1.2,Gradle是7.4,和Flutter 3.24.0的兼容性可能存在问题,建议升级到匹配版本:
- 修改
gradle-wrapper.properties的distributionUrl为:distributionUrl=https://services.gradle.org/distributions/gradle-7.5-all.zip - 修改项目根目录build.gradle中的AGP版本为:
classpath 'com.android.tools.build:gradle:7.2.2'
说明:Flutter 3.24.0推荐使用AGP 7.2+和Gradle 7.5+,升级后可能修复Manifest校验的严格性问题。
方案3:排除冲突的依赖传递
检查是否有其他第三方依赖间接引入了不同版本的Razorpay库,在pubspec.yaml的razorpay_flutter依赖中排除冲突的传递依赖:
dependencies: razorpay_flutter: ^1.3.7 exclude: group: 'com.razorpay' module: 'standard-core'
说明:如果razorpay_flutter本身已经包含了所需的功能,排除重复的standard-core依赖即可。
方案4:禁用Manifest包名校验(临时方案)
如果以上方法都无效,可临时禁用Android的Manifest包名校验,在app/build.gradle的android块中添加:
android { // ... 其他配置 lintOptions { checkReleaseBuilds false abortOnError false disable 'PackageName' } }
说明:这是临时解决方案,不建议长期使用,仅用于紧急恢复构建,后续仍需找到根本冲突原因。
内容的提问来源于stack exchange,提问作者user2783316
相关产品推荐
相关产品推荐

