美文网首页Android
Android与flutter混合开发

Android与flutter混合开发

作者: wrs瑞 | 来源:发表于2021-12-07 23:39 被阅读0次

    这里我使用的android studio版本是2020.3.1;flutter版本2.5.3。此前在网上搜索的很多教教程版本都不一样,新版的IDE和SDK让我遇到了很多坑故这里整理一下。

    一、创建项目

    1.在Android项目中点击File->New->New Flutter Project。File->New->New Flutter Project


    2.在弹出的面板中选择Flutte,选择Flutter SDK所在的路径,然后Next。

    3.然后在弹出的面板中输入Project name和Description,Organization,选择location时建议选择建在和android同一目录下。类型选择Flutter Module,点击Finish完成创建。

    二、Android项目关联Flutter Module

    Flutter官网上讲到此处就已经建立完成了,但是我使用的Android Studio的最新版和官网中的操作步骤的不一样的,并没有完成项目的关联。有无关联可在原生项目的seetings.gradle中查看是否有如下代码,没有就手动添加。我这里的Bingding会报错但是不影响Sync可能是flutter的bug吧。

    setBinding(new Binding([gradle: this]))
    evaluate(new File(
            settingsDir,
            '../fluttermodule/.android/include_flutter.groovy'
    ))
    
    

    然后在app的build.gradle中添加

    implementation project(':flutter')
    

    三、Failed to apply plugin class ‘FlutterPlugin’

    此时应该就已经完成了项目关联了,可是我试了N多次每次都是会报错,错误提示为:

    • Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin class ‘FlutterPlugin’
    • aused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin class ‘FlutterPlugin’.
      解决方案为:
      1.把seetings.gradle中的(RepositoriesMode.FAIL_ON_PROJECT_REPOS)改为(RepositoriesMode.PREFER_PROJECT)
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        }
    }
    

    2.在project的build.gradle中添加

    allprojects {
            repositories {
                maven { url 'https://maven.aliyun.com/repository/public' }
                maven { url 'https://maven.aliyun.com/repository/public' }
                maven { url 'https://maven.aliyun.com/repository/google' }
                maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            }
        }
    

    3.重新build,此时就没有报错了。

    相关文章

      网友评论

        本文标题:Android与flutter混合开发

        本文链接:https://www.haomeiwen.com/subject/ddkzxrtx.html