问题1:环境配置准备
解决方案:具体细节参考flutter官方文档
一、下载安装flutter SDK并配置环境变量
二、studio中安装flutter/Dart插件成功
问题2:创建的flutter Project卡在Running Gradle task ‘assembleDebug’
解决方案:
因为Gradle的Maven仓库在国外, 可以使用阿里云的镜像地址。
修改项目中android/build.gradle
文件:
第一处:
repositories {
/*google()
jcenter()*/
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
第二处:
allprojects {
repositories {
/*google()
jcenter()*/
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
}
然后单独打开flutter里面的android项目,把上面配置加上,等android studio编译
问题3:New Gradle Sync is not supported due to containing Kotlin modules using an unsupported plugin version
解决方案:
gradle 配置的 kotlin插件版本和IDE(android-studio)中kotlin plugin版本不匹配,导致kotlin插件无法启用。
在android-studio中,kotlin是系统自带的plugins,android-studio根目录下plugins文件夹内的kotlin文件夹可看到,也可在file-settings-plugins-kotlin中查看对应版本:
android/build.gradle`文件中改为对应版本:
ext.kotlin_version = '1.3.61'
问题4:如何在原生Android项目中集成flutter
解决方案:可参考原生项目集成Flutter
一、 在原生Android项目中Studio创建Flutter Module;
二 、项目的根目录settings.gradle文件中配置
/*evaluate(new File(
settingsDir,
'flutter_module/.android/include_flutter.groovy'
))
include ':flutter_module'*/
evaluate(new File(
settingsDir.parentFile,
'FlutterToAndroid/flutter_module/.android/include_flutter.groovy'))
其中new File(settingsDir.parentFile,
‘主项目名称/flutter_module名称/.android/include_flutter.groovy’)含义是在 settings 文件所在目录(settingsDir)的父目录有对应groovy文件
问题5: 原生Android项目中集成flutter编译出现问题Could not get resource ‘https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.jar’.
解决方案:
参照问题2的方案修改flutter module的build.gradle
repositories {
/*google()
jcenter()*/
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}
至此,原生项目中集成flutter module成功。
问题6:安卓原生界面与flutter界面的交互处理(未完待续)