开发 Android 插件时找不到 Flutter

21

我 fork 了一个插件,目的是更新使用 Android 的嵌入式 v2 版本。但当我在 Android Studio 中打开 android 文件夹时,它找不到 Flutter。它无法导入这些类:

import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.PluginRegistry.Registrar;

我需要编辑 Flutter 插件的 Android 部分,是否有什么遗漏的内容?

这是我正在尝试更新的插件:https://github.com/lslv1243/launch_review

提前感谢!

7个回答

18

当我按照以下步骤操作时(假设Dart和Flutter插件已经在Android Studio的首选项中配置好了)它对我起作用:

  1. 关闭所有项目,直到出现“欢迎使用Android Studio”窗口,其中包括最近项目列表和一组选项
  2. 选择“打开现有的Android Studio项目”
  3. 选择文件plugin/example/android/build.gradle

3
但是为什么从plugin/example/android/build.gradle打开它可以工作,而从plugin/android/build.gradle无法工作? - Alexandra Damaschin
你为我节省了很多时间和精力。谢谢!打开示例项目的 build.gradle 确实有所帮助。 - Konstantin

9
你应该从example/android路径在android studio中打开项目。

8
事实证明这是一个已知的错误:https://github.com/flutter/flutter/issues/19830。您可以在那里找到不同的解决方案和问题的一般讨论。
提供的解决方案在我的情况下没有帮助。真正发挥作用的是这个(来自@incloudss):
对于仍然遇到该问题的人,请忽略官方文档,并不要按照它们描述的方式打开Android项目。
相反:
1. 打开主要的Flutter项目。 2. 转到工具-> Flutter-> 在Android Studio中打开以进行编辑(是的,它看起来没有意义,因为我们已经在AS中了,但它有效)。

4

当我从Flutter项目的插件模块中导入Android项目时,遇到了类似的情况。这意味着我的Flutter项目在根目录下有一个android文件夹,并且我作为插件导入的模块中还有另一个android文件夹。如果我尝试使用Android Studio打开该模块,则无法检测到“io.flutter.plugin.common”包,因为缺少“flutter.jar”库。

所以我所做的就是将flutter.jar路径添加到依赖项中。

implementation files('/Users/username/Developer/flutter/bin/cache/artifacts/engine/android-arm64-release/flutter.jar')

我选择“android-arm64-release”,因为我使用的是M1芯片的MacBook。

现在我可以编辑插件项目的Android模块。但是在运行Flutter项目之前,我必须注释掉flutter.jar依赖项并重新同步,否则会显示冲突错误。


1

2
我已经安装了这些。 - Leonardo da Silva
我正在使用Mac,它称为“Preferences”而不是“Settings”。但是当我进入“Languages&Frameworks”时,我没有名为“Flutter”的选项。我已经在我的Android Studio中安装了Flutter和Dart插件。您知道可能缺少什么吗? - Leonardo da Silva
你的回答是正确的。我的Dart版本与Android Studio版本不兼容。我已经更新了它,现在它可以工作了。我只需要检查一下错误是否消失了。 - Leonardo da Silva
我提供了SDK路径https://i.ibb.co/xCS2NgM/Captura-de-Tela-2020-06-03-a-s-12-00-31.png,但错误仍然存在https://i.ibb.co/qNzjS4k/Captura-de-Tela-2020-06-03-a-s-12-00-53.png。 - Leonardo da Silva

1

依赖于一个 flutter 插件项目。(我的版本是 Android Studio Electric Eel | 2022.1.1 Patch 2)

像这样 flutter create --org com.example --template=plugin plugin_himan --platforms=ios,android,linux,windows,macos --android-language=java --ios-language=objc

  • 在 Android Studio 中,打开 Project Structure

  • 选择 Project Settings-Modules,然后你可以看到 plugin_himan 和 plugin_himan_android

  • 选择 Dependencies,Module SDK 选择所需的一个

  • 点击 + 按钮,选择 Jars 或 Directories(复制你的 flutter_embedding_debug.jar 路径)

现在,你可以直接在 plugin_himain/android 项目中使用 flutter package 或 class。如何获取 flutter_embedding_debug.jar

  1. 构建Flutter引擎源代码
  2. 或者像这样使用Gradle编译:compileOnly io.flutter:flutter_embedding_debug:1.0.0-tag,在下载中获取ETag,将其替换为io.flutter:flutter_embedding_debug:1.0.0-tag中的标签

0
经过几天的努力解决这个问题,对我来说解决方法是: https://github.com/flutter/flutter/issues/19830#issuecomment-1688736003 原来,在示例目录中首先要构建Android应用程序。
  1. 在/example/android中调用flutter build apk --config-only。(注意example目录)。
  2. 最后,在Android Studio中打开/example/android(仍然在example目录中)。
它应该打开两个Android模块:/example/android/android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接