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

Flutter安卓集成Stripe报错:stripe_android:compileDebugKotlin执行失败

Flutter v3 安卓端集成Stripe支付构建失败问题

问题背景

  • 项目Chrome Web环境可正常构建运行,安卓端配置严格参照Flutter Stripe官方文档完成,已将minSdk版本修改为21
  • 在Infinix X5515F设备上以debug模式启动lib/main.dart时触发编译错误,最终构建失败

现有配置内容

1. 文件路径:/android/app/src/main/res/values/styles.xml

<resources>
    <!-- 系统关闭深色模式时,进程启动阶段应用的Android窗口主题 -->
    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- 启动页展示的闪屏,Flutter绘制第一帧时会自动移除 -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- 进程启动完成后应用的Android窗口主题,决定Flutter UI初始化阶段、运行时Flutter UI下层的窗口颜色,仅在Flutter Android V2嵌入模式下生效 -->
        <style name="NormalTheme" parent="Theme.MaterialComponents">
        <item name="android:windowBackground">?android:colorBackground</item>
    </style>
</resources>

2. 文件路径:android/app/src/main/res/values-night/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 系统开启深色模式时,进程启动阶段应用的Android窗口主题 -->
    <style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 启动页展示的闪屏,Flutter绘制第一帧时会自动移除 -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- 进程启动完成后应用的Android窗口主题,决定Flutter UI初始化阶段、运行时Flutter UI下层的窗口颜色,仅在Flutter Android V2嵌入模式下生效 -->
    <style name="NormalTheme" parent="Theme.MaterialComponents">
        <item name="android:windowBackground">?android:colorBackground</item>
    </style>
</resources>

3. 文件路径:MainActivity.kt

package com.example.ecomm

import io.flutter.embedding.android.FlutterFragmentActivity

class MainActivity: FlutterFragmentActivity() {
}

4. 项目Gradle依赖配置

dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
}

报错日志

Kotlin编译阶段抛出如下错误:

e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeAubecsDebitPlatformViewFactory.kt: (13, 1): Class 'StripeAubecsDebitPlatformViewFactory' is not abstract and does not implement abstract base class member public abstract fun create(p0: Context?, p1: Int, p2: Any?): PlatformView defined in io.flutter.plugin.platform.PlatformViewFactory
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeAubecsDebitPlatformViewFactory.kt: (19, 5): 'create' overrides nothing
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkCardFormPlatformViewFactory.kt: (12, 1): Class 'StripeSdkCardFormPlatformViewFactory' is not abstract and does not implement abstract base class member public abstract fun create(p0: Context?, p1: Int, p2: Any?): PlatformView defined in io.flutter.plugin.platform.PlatformViewFactory
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkCardFormPlatformViewFactory.kt: (18, 5): 'create' overrides nothing
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkCardPlatformViewFactory.kt: (12, 1): Class 'StripeSdkCardPlatformViewFactory' is not abstract and does not implement abstract base class member public abstract fun create(p0: Context?, p1: Int, p2: Any?): PlatformView defined in io.flutter.plugin.platform.PlatformViewFactory
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkCardPlatformViewFactory.kt: (18, 5): 'create' overrides nothing
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkGooglePayButtonPlatformViewFactory.kt: (12, 1): Class 'StripeSdkGooglePayButtonPlatformViewFactory' is not abstract and does not implement abstract base class member public abstract fun create(p0: Context?, p1: Int, p2: Any?): PlatformView defined in io.flutter.plugin.platform.PlatformViewFactory
e: /home/diljith/snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/stripe_android-2.5.0/android/src/main/kotlin/com/flutter/stripe/StripeSdkGooglePayButtonPlatformViewFactory.kt: (18, 5): 'create' overrides nothing

最终构建失败详情:

  • 错误原因:执行任务:stripe_android:compileDebugKotlin失败,存在Kotlin编译错误
  • 排查提示:可添加--stacktrace参数运行获取堆栈信息、添加--info或--debug参数输出更多日志、添加--scan参数获取完整构建分析报告
  • 构建结果:总耗时26s,BUILD FAILED,Gradle任务assembleDebug执行失败,退出码1,进程被sigterm信号终止

问题原因

*stripe_android 2.5.0版本内置的PlatformView工厂类实现,和Flutter v3版本的PlatformViewFactory抽象方法签名不兼容:Flutter v3更新了create方法的参数空安全定义,旧版本Stripe SDK的override方法签名不匹配,直接触发Kotlin编译报错。

解决方案

二选一即可:

  • 方案1(推荐):升级flutter_stripe到最新稳定版本,新版SDK已完成Flutter v3的API适配。修改pubspec.yaml中flutter_stripe的版本约束,执行依赖拉取后清理缓存重新编译:
flutter clean
flutter pub get
flutter run
  • 方案2:若暂时无法升级Stripe SDK,手动对齐项目Kotlin版本为和AGP 7.1.2兼容的1.6.21版本。打开android/build.gradle,在buildscript配置块中添加Kotlin版本声明,引入对应Gradle插件:
buildscript {
    ext.kotlin_version = '1.6.21'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

修改完成后执行flutter clean清理构建缓存,重新编译即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 20:48:28