You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic集成Braintree插件调用presentDropInPaymentUI崩溃求助

解决Ionic+Braintree插件调用presentDropInPaymentUI崩溃的问题

从你提供的崩溃日志来看,核心问题是Android Support Library版本冲突——Braintree的Drop-in UI组件依赖的support-v4库版本包含了ResourcesCompat.getFont()方法,但你的项目中当前使用的support库版本过低,导致找不到这个方法引发崩溃。下面是具体的解决方案:

一、核心原因分析

ResourcesCompat.getFont()是在Android Support Library 26.0.0版本才新增的API,而你当前使用的Cordova Android 6.4.0默认依赖的support库版本低于26.0.0,和Braintree插件的依赖版本不匹配,直接导致了这个NoSuchMethodError。

二、分步解决方案

1. 升级Cordova Android平台版本

Cordova Android 6.4.0是比较旧的版本,建议升级到7.1.0及以上版本,这些版本默认适配更高版本的support库,能从根源解决版本冲突问题:

# 先移除旧的Android平台
cordova platform remove android
# 添加指定版本的Android平台(推荐7.1.0或更高)
cordova platform add android@7.1.0

2. 强制统一Support Library版本(无需升级平台的备选方案)

如果暂时不想升级Cordova Android平台,可以通过cordova-android-support-gradle-release插件强制所有插件使用统一的support库版本,比如指定26.1.0(和你的targetSdkVersion 26匹配):

# 安装插件并指定support库版本
cordova plugin add cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION=26.1.0
# 重新构建项目
ionic cordova build android

3. 确保Braintree插件是最新版本

旧版本的Braintree插件可能存在兼容问题,建议更新到最新版:

cordova plugin update cordova-plugin-braintree

4. 验证基础配置

  • 确认config.xml中的targetSdkVersion已设置为26:
<preference name="android-targetSdkVersion" value="26" />
  • 打开Android Studio的SDK Manager,确保已安装**Android 8.0 (API 26)**的SDK Platform和对应版本的Build Tools。

三、更优集成方式建议

如果原生插件的兼容问题反复出现,你可以考虑两种备选方案:

  • Braintree Web SDK:在Ionic的WebView中直接使用Braintree的Web SDK完成支付,这种方式不需要依赖原生插件,但需要你自己处理后端的支付验证流程,适合对定制化要求较高的场景。
  • 使用官方推荐的Capacitor替代Cordova:如果你正在考虑技术栈升级,Capacitor是Ionic官方推荐的替代Cordova的方案,它的插件生态更适配现代Android版本,能减少这类版本冲突问题。

内容的提问来源于stack exchange,提问作者Loyonyart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:17:37