Flutter 3.24.4触发R8缺失类错误,求助可行解决方案
解决Flutter 3.24.4中R8检测到Stripe PushProvisioning缺失类的构建错误
问题分析
从错误日志可见,react-native-stripe-sdk的PushProvisioning模块引用了com.stripe.android.pushProvisioning下的类,但项目未引入对应的Stripe Android依赖包,导致R8混淆时无法找到这些类。更换AGP版本无法解决核心的依赖缺失问题。
解决方案
方案1:引入缺失的Stripe PushProvisioning依赖
在android/app/build.gradle的dependencies块中添加Stripe Android的PushProvisioning模块依赖(版本需与react-native-stripe-sdk兼容,建议使用与SDK匹配的版本):
dependencies { // 保留原有依赖... implementation 'com.stripe:stripe-android:20.17.0' // 可根据SDK实际依赖版本调整 }
添加后执行以下命令清理缓存再重新构建:
flutter clean cd android && ./gradlew clean
方案2:添加R8 Keep规则(无需使用PushProvisioning功能时)
如果你的APP不需要Stripe的PushProvisioning功能,可以添加规则让R8忽略这些缺失类,避免构建报错。在android/app/proguard-rules.pro(无则新建)中添加:
-dontwarn com.stripe.android.pushProvisioning.** -keep class com.stripe.android.pushProvisioning.** { *; }
注意:此方案仅跳过错误检测,若后续用到相关功能会触发运行时崩溃,仅适用于确认不需要该功能的场景。
方案3:检查依赖版本兼容性
运行flutter pub deps查看react-native-stripe-sdk依赖的Stripe Android版本,确保手动引入的stripe-android版本与之匹配,避免因版本不匹配导致的类结构差异问题。
内容的提问来源于stack exchange,提问作者Muhammad Abdullah
相关产品推荐
相关产品推荐

