新人刚开始学习使用Flutter总会遇到环境配置的各种问题,现在将我碰到的一些奇怪问题记录下来,帮助大家也给自己备忘。
开发环境查看(命令行:flutter doctor)
电脑: macbook pro 15
系统: mac 10.13.1
IDE: Android Studio 3.4.1
Flutter版本: channel stable v1.5.4-hotfix.2
Android sdk: 28.0.3
Gradle: 3.2.1
Xcode: 9.2
Error:The argument type 'String' can't be assigned to the parameter type **]
原因:flutter版本不一致导致。
解决:将flutter版本通过flutter channel stable切换成稳定版本重新编译即可。
Error:Target of URI doesn't exist: package:**
原因:flutter版本较低,有的插件包明明在工程plugins下,但是代码里引用不了。
解决:命令行在工程文件夹路径下用flutter update命令更新Dart sdk版本,重启AndroidStudio即可。
Error:androidx vectordrawable has different version for 1.0.0 and 1.0.1
原因:flutter引用的第三方包里使用了旧sdk下的一些包,在>=28版本以上官方推荐使用androidX包避免包版本不一致问题。
解决:
1.在android文件夹根目录下build.gradle文件里配置以下脚本,把版本冲突的包都加在里边,强制指定使用一个统一的版本。
subprojects {
configurations.all {
resolutionStrategy.force "androidx.vectordrawable:vectordrawable:1.0.1"
resolutionStrategy.force "androidx.appcompat:appcompat:1.0.2"
}
}
2.将gradle版本指定为自己常用的较低版本
buildscript {
dependencies {
classpath'com.android.tools.build:gradle:3.2.1'
}
}
3.app module里的build.gradle sdk compileSdkVersion,targetSdkVersion都指定为28。
Error:It appears that your application still contains the default signing identifier.
原因:真机调试时候,应用bundle Id和苹果证书上注册的不一致,或者没有安装苹果开发者证书。
解决:打开xcode修改bundle Id。选择有效期内的苹果开发者证书。注意xcode版本和编译系统版本要和iphone手机系统搭配。