导入 Flutter 项目到 Android studio 碰到的几个问题

今天从 Github 下载 Flutter 项目,将项目导入到 Android studio,这期间碰到好几个问题。我觉得这类问题应该是导入开源工程共有的问题,将解决方案记录在这,希望帮到有需要的朋友。

1、the name myapp isn’t a class

这个问题很好解决,而且报错一半发生在 test.dart类中,myapp是 Flutter 默认启动类的名字。但我们也可以修改这个类的名字。

void main() {
  runApp(const XXX());
}

如果你运行项目报如上错误,很有可能是默认启动类的名字变了,而 test 中没更新。修改成一样的名字就行。

await tester.pumpWidget(const XXX());

2、One or more plugins require a higher Android SDK version.

这个报错很简单,按照提醒,提高 Android SDK 的版本号,具体需要的版本号和修改位置看编辑器提醒。一般是在 android/app/build.gradle 文件,修改compileSdkVersiontargetSdkVersion为对应版本,比如我这边要求33。

接下来将 SDK Manager打开,勾选使用的 SDK 版本,如果不存在,勾选后会自动下载。

安装完成后记得设置到工程,具体参考下图。如果刚新下载的版本索引不到,使用 New 选择到 SDK 路径,添加进去。

3、Your project requires a newer version of the Kotlin Gradle plugin.

还是按照如上提醒去解决。我们需要一个新版本的 Kotlin Gradle plugin ,找到项目根目录build.gradle文件。

   dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

再去修改$kotlin_version的值。

    ext.kotlin_version = '1.6.10'

4、build.gradle new Properties() cannot resolve 报红

这个问题我参考 First Flutter App error: cannot resolve symbol “Properties” 获得解决。文章的解决方案很详细,这里我就简单提一下,不懂的去看原文。设置整个工程的 SDK ,我这将电脑存在的最新版本设置上去,点击确定就行了。

5、gradleException cannot resolve 报错

和上面一样,在 android studio cannot resolve symbol ‘GradleException’ 找到解决方案,使用 FileNotFoundException 代替 GradleException就行。

6、Flutter PackageManager has been Deprecated

permission_handler-8.3.0/android/src/main/java/com/baseflow/permissionhandler/PermissionUtils.java:317: 警告: [deprecation] PackageManager中的getPackageInfo(String,int)已过时
                    .getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);

这是权限申请框架permission_handler依赖出问题了。参考 How to Solve the Flutter PackageManager has been Deprecated,在pubspec.yaml中修改permission_handler的版本。

但我根据上面步骤,并没解决这个问题,最后我是这样做的。

permission_handler: ^10.2.0

然后将整个工程 Android SDK 设置到 33。

本文由老郭种树原创,转载请注明:https://guozh.net/som-problems-with-importing-flutter-projects-into-android-studio/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注