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

flutter_stripe安卓初始化异常:主题配置不符与stripeSdk未初始化

解决Flutter集成flutter_stripe安卓端初始化异常问题

问题1:主题未使用Theme.AppCompat或Theme.MaterialComponents报错

即使已在styles.xml设置父主题并在AndroidManifest.xml应用,仍触发该报错,可从以下方向排查:

  • 检查所有Activity的主题配置:确保所有Activity(包括启动页Activity)都继承自Theme.AppCompat或Theme.MaterialComponents,避免单个Activity单独设置非兼容主题。
  • 确认styles.xml文件目录:检查res/values、res/values-v21等目录下的styles.xml是否存在冲突主题,优先保证默认目录下的主题配置正确。
  • 验证AppCompat依赖:在android/app/build.gradle中确认已引入AppCompat依赖,例如:
    implementation 'androidx.appcompat:appcompat:1.6.1'
    
  • 清理项目缓存:执行flutter clean,删除android/.gradle、android/app/build目录后重新构建项目。

问题2:stripeSdk未初始化异常(iOS正常)

已添加await Stripe.instance.applySettings()但仍报错,可尝试以下步骤:

  • 严格控制初始化顺序:确保在调用任何Stripe相关API前,先完成初始化流程。例如在main函数中先执行初始化,再启动应用:
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      Stripe.publishableKey = "your_publishable_key";
      await Stripe.instance.applySettings();
      runApp(const MyApp());
    }
    
  • 检查安卓原生初始化触发:若自定义了FlutterActivity或Application类,需保证插件的onAttachedToEngine方法能被正确触发。例如自定义Application时需添加初始化代码:
    import com.stripe.android.PaymentConfiguration
    class MyApplication : FlutterApplication() {
        override fun onCreate() {
            super.onCreate()
            PaymentConfiguration.init(applicationContext, "your_publishable_key")
        }
    }
    
    并在AndroidManifest.xml中指定该Application:
    <application
        android:name=".MyApplication"
        ...>
    </application>
    
  • 验证插件与Flutter版本兼容性:尝试升级或降级flutter_stripe到官方稳定版本,避免版本不匹配导致的初始化逻辑异常。
  • 检查Publishable Key正确性:确保传入的是安卓平台对应的Stripe Publishable Key,无拼写错误或混淆测试/生产环境密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:28:25