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 声明。

相关推荐
Jewel10512 分钟前
文字为什么总是不居中!记录一个bug
android·flutter·ios
2601_9498477519 小时前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter
大龄秃头程序员1 天前
Flutter 中我为什么把 GetX 定位为高效率方案,而不是默认架构方案
flutter
传奇开心果编程1 天前
组合优先开发范式:从汉字造字原理到声明式UI组件组合思想
android·flutter·ios·swiftui·移动开发·harmonyos·android jetpack
2501_944521591 天前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
大龄秃头程序员2 天前
Flutter 架构里总被混淆的 IoC、DI、Service Locator,到底是什么关系?
flutter
事圆则缓2 天前
Flutter 与原生交互的最后一层:RTC 视频帧怎么走
flutter·音视频·实时音视频
2601_949847752 天前
jose 跨端三方库仓颉适配全流程
前端·javascript·flutter
2601_949970692 天前
msgpackr 跨端三方库仓颉适配全流程
前端·javascript·flutter
2601_949970693 天前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter