flutter 原生平台插件学习记录之 android 篇

创建项目 plugin_demo 如图所示

创建好的 工程结构如图所示

预览和调试 插件效果

要先在 plugin_demo/example 目录运行 flutter pub get

现在开始开发 android 平台的插件,使用 Android Studio 打开 plugin_demo/example/android 目录,然后打开 File-> Sync Project with Gradle Files 会看到两个 android 目录如图,

其中 带有 田字格的这个是用来写 原生平台 插件预览的,这个目录本质是 一个 android library, 另外一个才是一个完整的 Android 工程,同步完依赖就可以启动

做完这些步骤写原生安卓 代码才会有语法高亮以及智能提示,这里踩了挺长时间的坑,特别记录一下。

如下是 deepseek 给的解决方法。

我创建了 一个 plugin 类型的工程 plugin_demo, 用Android Studio 打开了根目录下的 example/android 工程,但是看不到 依赖的 android library 也即 插件对应的Android 源码?

在 Android Studio 中打开 example/android 却看不到插件源码,通常是由于项目同步不完整 或打开方式不正确导致的。可以按照以下步骤排查。

🎯 第一步:运行 flutter pub get

在打开 Android Studio 之前,请先在 example 目录 下执行 flutter pub get,以确保所有 Dart 依赖和插件原生代码的关联信息被正确生成。

🔄 第二步:重新同步 Gradle

如果已执行 pub get 但仍看不到,请在 Android Studio 中点击 File > Sync Project with Gradle Files 重新同步。

📂 第三步:检查项目打开方式

必须通过 example/android 目录打开项目 ,而不是直接打开插件根目录下的 android 文件夹。正确做法是:File > Open ,然后选择 your_plugin/example/android。如果之前打开过错误的目录,建议删除项目中的 .idea 文件夹后重新打开。

🗂️ 第四步:检查 Project 视图

确保左上角的 Project 视图选择的是 "Android" 或 "Project" ,而不是其他筛选视图。

🔗 第五步:手动关联 Gradle 项目

如果插件模块仍未出现,可以找到 example/android/build.gradle 或 example/android/app/build.gradle,右键点击该文件 ,选择 "Link Gradle Project" ,等待索引完成。

🔧 第六步:检查 SDK 配置

打开 File > Project Structure > Project ,确认 SDK 不为 <no_sdk> ,而是选择了正确的 Android API 版本。

🧹 第七步:清理缓存

如果以上步骤均无效,尝试 File > Invalidate Caches / Restart ,选择 "Invalidate and Restart" 后重启 Android Studio。


如果问题仍然存在,可以检查 example/android/settings.gradle 中是否正确包含了插件模块的 include 声明。

相关推荐
m0_738185825 小时前
Flutter 鸿蒙化实战:qrcode_flutter 适配 OpenHarmony,二维码生成与识别
数码相机·flutter·华为·harmonyos·鸿蒙
传奇开心果编程5 小时前
【声明式UI开发实用技术学与练】第8课 状态提升与下放
学习·flutter·react native·ui·swiftui·composer
m0_738185827 小时前
Flutter 鸿蒙化实战:open_app_settings 适配 OpenHarmony,一键跳转系统设置
flutter·华为·harmonyos·鸿蒙
m0_738185827 小时前
Flutter 鸿蒙化实战:qr_code_scanner 适配 OpenHarmony,相机扫码实时识别
数码相机·flutter·华为·harmonyos·鸿蒙
传奇开心果编程1 天前
【现代声明式UI学与练】第4课 列表渲染与 key——如何高效渲染列表、key 的作用、列表重排时的状态保持
学习·flutter·react native·ui·swiftui·android jetpack
m0_738185821 天前
Flutter 鸿蒙化实战:media_info 适配 OpenHarmony,媒体信息与缩略图
flutter·华为·harmonyos·鸿蒙·媒体
m0_738185821 天前
Flutter 鸿蒙化实战:just_audio 适配 OpenHarmony,功能强大的播放器
flutter·华为·harmonyos·鸿蒙
传奇开心果编程2 天前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
律宏阔2 天前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter