这里我使用的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,此时就没有报错了。