2024最新flutter在android studio中部署系列问题解决

打印 上一主题 下一主题

主题 991|帖子 991|积分 2973

环境介绍

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创建的任何项目都应该将其修改为国内源,否则第一次初始化都会卡住,这里修改为腾讯国内镜像。
  1. 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
  1. buildscript {
  2.     repositories {
  3.         // google()
  4.         // mavenCentral()
  5.         //替换部分
  6.         maven { url 'https://maven.aliyun.com/repository/google' }
  7.         maven { url 'https://maven.aliyun.com/repository/jcenter' }
  8.         maven { url 'https://maven.aliyun.com/repository/public' }
  9.     }
  10.     dependencies {
  11.         /** When bumping, also update ndkVersion above, as well as the Android Gradle Plugin
  12.          * version in ../lib/src/android/gradle_utils.dart.
  13.          */
  14.         classpath 'com.android.tools.build:gradle:7.3.0'
  15.     }
  16. }
复制代码
  1.     // google() // mavenCentral()这两行需要注释掉,换成下面的maven。
复制代码
同时需要打开项目文件,修改build.gradle,也是需要加上上面的三个maven。
  1. buildscript {
  2.     ext.kotlin_version = '1.7.10'
  3.     repositories {
  4. //        google()
  5. //        mavenCentral()
  6.         maven { url 'https://maven.aliyun.com/repository/google' }
  7.         maven { url 'https://maven.aliyun.com/repository/jcenter' }
  8.         maven { url 'https://maven.aliyun.com/repository/public' }
  9.     }
  10.     dependencies {
  11.         classpath 'com.android.tools.build:gradle:7.3.0'
  12.         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  13.     }
  14. }
  15. allprojects {
  16.     repositories {
  17. //        google()
  18. //        mavenCentral()
  19.         maven { url 'https://maven.aliyun.com/repository/google' }
  20.         //maven{url 'http://maven.aliyun.com/nexus/content/groups/publi'}这种是错误的,不能是http的协议!
  21.         maven { url 'https://maven.aliyun.com/repository/jcenter' }
  22.         maven { url 'https://maven.aliyun.com/repository/public' }
  23.     }
  24. }
复制代码
只需要注释google()和mavenCentral()并加上三个maven哦
还需要注意的是,确保更换的国内镜像源是https协议!!!!,否则会报不安全错误无法运行!!!
原因是:自Gradle 7.0版本起,默认环境下不允许使用非安全协议(如HTTP),除非显式地选择允许这样做。这是为了增强安全性,防止中心人攻击等安全威胁。
在控制台调试运行flutter项目可以使用flutter run -v,会表现对应的日志。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表