环境介绍
flutter版本:3.10.2
android studio版本:Android Studio Ladybug | 2024.2.1
系统版本:windows11
由于笔者最近想要开发一个移动app,查找资料发现flutter写app比力舒服,故尝试安装flutter,遇到了一系列的问题,对其举行了相关的总结。
android studio创建flutter项目卡住/flutter create卡住
由于创建flutter会使用相关的国内源,在第一次使用flutter很多都是因为国内源的问题导致的,因此,可以先在资源管理器中打开对应的终端,使用flutter create projectname的方式去创建一个项目。
可以看到创建项目这里是需要下载东西的,这里需要在环境变量中设置国内的源即可加速下载,否则会很慢。(笔者这里是设置好的flutter上保举的镜像)
需要在windows中打开环境变量->用户变量处设置
(1)key:PUB_HOSTED_URL value:https://pub.flutter-io.cn
(2)key:FLUTTER_STORAGE_BASE_URL value:https://storage.flutter-io.cn
设置完成后运行flutter create即可快速创建项目。
flutter运行时很慢/卡在Running Gradle task ‘assembleDebug’…
这里也是在下载东西,没有下载到一直在等,主要是创建项目的时间,会有一个gradle-wrapper.properties文件,是主动创建的,因此设置也是系统默认的。
可以看到注释部分是国外的网站,因此导致下载很慢。在android studio创建的任何项目都应该将其修改为国内源,否则第一次初始化都会卡住,这里修改为腾讯国内镜像。
- distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.5-all.zip
复制代码 修改后下载速度变快。
flutter运行报错/Could not open settings generic class cache for settings file BUG! exception in phase ‘semantic analysis’ in source unit ‘BuildScript’ Unsupported class file major version 63
出现这个原因是因为java的版本和flutter所需的版本不一致。笔者认为大家应该都在电脑中安装了java,设置好了java的系统版本。因此需要大家验证一下java的版本。java -version
这里表现版本号,需要举行相应的修改。笔者这里是11的版本,原先的报错是说63版本不匹配,也就是对应java17以上的版本,因此需要修改一下。只需要修改java-home这个环境变量即可,修改为你的别的版本的java路径。
另有一个问题是,修改了java_home不起作用,主要原因是orcale软件会有配套的java环境,其会影响自己本机的java的优先级。需要查看path中路径的先后顺序
比如笔者电脑环境变量path内容如下:
可以看到标红的部分,就是oracle会影响的,需要包管java的bin和jre的目录在其前面,可以看到笔者的顺序是准确的。这样java的版本就会和你设置的java_home保持一致了。
flutter运行卡住/Could not resolve all dependencies for configuration ‘:classpath’.Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository ‘maven3(http://maven.aliyun.com/nexus/content/groups/public)’ to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.5/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details.
上述问题是另一个导致flutter卡住的问题,主要是运行的时间,下载另一部分的内容导致的,也是需要修改国内的镜像源。需要修改的文件内容如下:
1.flutter\packages\flutter_tools\gradle\flutter.gradle
- buildscript {
- repositories {
- // google()
- // mavenCentral()
- //替换部分
- maven { url 'https://maven.aliyun.com/repository/google' }
- maven { url 'https://maven.aliyun.com/repository/jcenter' }
- maven { url 'https://maven.aliyun.com/repository/public' }
- }
- dependencies {
- /** When bumping, also update ndkVersion above, as well as the Android Gradle Plugin
- * version in ../lib/src/android/gradle_utils.dart.
- */
- classpath 'com.android.tools.build:gradle:7.3.0'
- }
- }
复制代码- // google() // mavenCentral()这两行需要注释掉,换成下面的maven。
复制代码 同时需要打开项目文件,修改build.gradle,也是需要加上上面的三个maven。
- buildscript {
- ext.kotlin_version = '1.7.10'
- repositories {
- // google()
- // mavenCentral()
- maven { url 'https://maven.aliyun.com/repository/google' }
- maven { url 'https://maven.aliyun.com/repository/jcenter' }
- maven { url 'https://maven.aliyun.com/repository/public' }
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:7.3.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
- }
- allprojects {
- repositories {
- // google()
- // mavenCentral()
- maven { url 'https://maven.aliyun.com/repository/google' }
- //maven{url 'http://maven.aliyun.com/nexus/content/groups/publi'}这种是错误的,不能是http的协议!
- maven { url 'https://maven.aliyun.com/repository/jcenter' }
- maven { url 'https://maven.aliyun.com/repository/public' }
- }
- }
复制代码 只需要注释google()和mavenCentral()并加上三个maven哦
还需要注意的是,确保更换的国内镜像源是https协议!!!!,否则会报不安全错误无法运行!!!
原因是:自Gradle 7.0版本起,默认环境下不允许使用非安全协议(如HTTP),除非显式地选择允许这样做。这是为了增强安全性,防止中心人攻击等安全威胁。
在控制台调试运行flutter项目可以使用flutter run -v,会表现对应的日志。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |