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

Flutter 3.7创建package模板与旧版及文档不符问题求助

问题原因分析

Flutter 3.7对package模板做了功能扩展:

  • 旧版本模板仅生成纯Dart包所需的核心文件(LICENSE、测试文件等)
  • 3.7版本开始,默认在包结构中加入android/ios目录,目的是简化带原生插件能力的包开发流程,让开发者可以直接在同一个包项目里编写原生平台代码,无需额外初始化原生工程

至于Android嵌入的警告,是因为生成的默认android目录里沿用了旧的V1嵌入配置,而Flutter已逐步弃用V1嵌入,因此触发了该提示。

警告处理方案

根据你的包类型选择对应的处理方式:

情况1:纯Dart包(无需原生代码)

如果你的包只包含Dart逻辑,不需要适配Android/iOS原生平台,直接删除生成的android和ios目录即可,警告会自动消失,同时包结构回归到官方文档描述的纯Dart包形态。

情况2:需要支持原生平台(要开发插件)

如果你的包需要添加原生代码能力,需要手动将Android嵌入升级到V2,步骤如下:

  1. 替换AndroidManifest配置
    打开android/app/src/main/AndroidManifest.xml,删除原有的io.flutter.app.FlutterActivity相关配置,添加V2嵌入的元数据:
    <activity
        android:name=".MainActivity"
        android:exported="true">
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    
  2. 更新MainActivity
    将android/app/src/main/kotlin/.../MainActivity.kt(或Java文件)修改为继承io.flutter.embedding.android.FlutterActivity,无需重写onCreate方法:
    package com.example.hello
    
    import io.flutter.embedding.android.FlutterActivity
    
    class MainActivity: FlutterActivity()
    
  3. 同步依赖
    打开android/build.gradle,确保Flutter插件版本适配V2(Flutter 3.7自带的插件版本通常已满足),示例配置:
    dependencies {
        classpath "com.android.tools.build:gradle:7.3.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
        classpath "dev.flutter:flutter-gradle-plugin:2.0.0"
    }
    

完成以上步骤后,重新运行项目,警告即可消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:07:50