升级flutter_braintree至4.0.0后Android端PayPal功能崩溃
解决flutter_braintree 4.0.0 Android端PayPal崩溃及跳转返回问题
问题分析
升级到4.0.0版本后,插件内部依赖的FlutterBraintreeCustom Activity未在Manifest中正确配置,导致启动崩溃;手动添加该Activity后,因缺少必要的intent-filter和启动模式配置,引发空白页及支付后无法返回应用的问题。
正确的AndroidManifest配置方案
替换原有的Activity配置,添加完整的FlutterBraintreeCustom配置,同时保留Braintree官方所需的Activity:
<!-- Braintree DropIn Activity --> <activity android:name="com.braintreepayments.api.DropInActivity" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="com.xxxxxx.android.braintree" /> </intent-filter> </activity> <!-- 3DSecure Activity --> <activity android:name="com.braintreepayments.api.ThreeDSecureActivity" android:theme="@style/Theme.AppCompat.Light" android:exported="true" /> <!-- FlutterBraintreeCustom 完整配置 --> <activity android:name="com.example.flutter_braintree.FlutterBraintreeCustom" android:theme="@style/Theme.AppCompat.Light" android:exported="true" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- scheme需与DropInActivity的配置完全一致 --> <data android:scheme="com.xxxxxx.android.braintree" /> </intent-filter> </activity>
关键配置说明
- launchMode="singleTask":确保PayPal支付完成后返回同一Activity实例,避免重复创建导致空白页。
- 匹配的intent-filter:scheme必须和DropInActivity的配置一致,保证PayPal能正确唤起应用内的回调页面。
- exported="true":适配Android 12+的权限要求,允许外部应用(PayPal)唤起该Activity。
额外检查项
- 确认
com.xxxxxx.android.braintree中的xxxxxx是应用真实的applicationId,无拼写错误。 - 执行
./gradlew clean清理Android项目缓存后重新编译运行。 - 验证Braintree初始化时的返回URL与scheme匹配,例如使用
com.xxxxxx.android.braintree://payment作为回调地址。
内容的提问来源于stack exchange,提问作者70NY
相关产品推荐
相关产品推荐

