Flutter开发四、项目导入需要注意的点和gradle本地仓库配置
目录配置检查android -gradle.propertiesandroid - app-build.gradle文件报错常用命令:运行慢的问题查看android\build.gradle文件,如果是下图所示。修改Flutter的配置文件flutter.gradle修改Flutter的配置文件resolve_dependencies.gradle配置gradle!下载设置环境变量修改本地仓库位置
目录
android - app - build.gradle文件报错
查看android\build.gradle文件,如果是下图所示。
修改Flutter的配置文件resolve_dependencies.gradle
Exhausted heap space, trying to allocate 4294967312 bytes.
配置检查
android - gradle.properties
android.enableJetifier=true android.useAndroidX=true
android - app - build.gradle文件报错
删除项目中的android或ios文件夹
- flutter create . 以重新生成这些目录
- flutter create -a java . 默认的是Kotlin语言,该命令即可生成java语言模式()
- flutter create -a java -i swift --androidx java_flutter(项目名)
- flutter 创建Andorid版本命令语句:flutter create -i objc -a java new_app(项目名)
- flutter 创建kotlin版本命令语句:flutter create -i objc -a kotlin new_app(项目名)
注:删除项目中的android或ios文件夹,可以删哪个就生成哪个,项目中android和ios文件夹都要有,
说明:
- 参数名 参数全称 含义 可选值 是否必选 默认值
- -t --template 项目类型 app、package、plugin 否 app
- --org --org 唯一标识前缀 - 否 com.example
- -i --ios-language iOS语言 objc、swift 否 objc
- -a --android-language Android语言 java、kotlin 否 java
- --project-name --project-name 项目名可省略参数名,直接写值 是 -
常用命令:
- flutter devices 查看设备列表
- flutter doctor 查看当前配置粗略情况
- flutter upgrade 升级flutter
- flutter build apk/ios 打包项目,生成可安装文件
- flutter packages get/upgrade 获取或升级依赖
- flutter analyze 使用分析器检查代码是否存在问题
- flutter config 配置信息相关操作
- flutter clean 清空缓存
- lutter version 查看flutter版本 加上版本名称 则进行切换
运行慢的问题
发现使用idea运行Flutter项目非常慢,找了一些解决方法。
查看android\build.gradle文件,如果是下图所示。
修改
buildscript { repositories { 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' } maven { url 'http://download.flutter.io'} } dependencies { classpath 'com.android.tools.build:gradle:4.2.0' } } allprojects { repositories { 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' } maven {url 'http://download.flutter.io'} } }
android\gradle\wrapper\gradle-wrapper.properties文件
对应gradle版本
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
修改Flutter的配置文件flutter.gradle
该文件在Flutter安装目录/packages/flutter_tools/gradle/flutter.gradle,该文章也提到过: 跨平台Flutter框架开发应用一、idea开发flutter环境搭建
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' }
修改
private static final String MAVEN_REPO = "https://storage.flutter-io.cn/download.flutter.io";
其他参考
private static final String MAVEN_REPO = "https://mirrors.tuna.tsinghua.edu.cn/flutter/download.flutter.io"; private static final String MAVEN_REPO = "http://download.flutter.io";
修改Flutter的配置文件resolve_dependencies.gradle
修改文件Flutter安装目录/packages/flutter_tools/gradle/resolve_dependencies.gradle
第20行的maven为:
url "http://download.flutter.io"
配置gradle!
忽然想起gradle这么慢会不会需要像配置maven镜像那样配置一下
下载
- gradle安装包下载地址,下载某个版本二进制压缩包,解压到本地磁盘
设置环境变量
- GRADLE_HOME=E:\xxx\xxx\gradle-5.6.4
- PATH 添加 %GRADLE_HOME%\bin
修改本地仓库位置
#如要修改本地仓库位置,需添加
- GRADLE_USER_HOME=D:\xxx\xxx\.gradle
gradle的默认仓库位置是在C盘,不像maven通过修改配置文件settings.xml改变位置,但可以通过GRADLE_USER_HOME这个环境变量修改
也可以将默认目录复制到你期望仓库的盘符路径,修改GRADLE_USER_HOME和GRADLE_HOME的环境变量,电脑重启生效,默认地址:
命令验证
gradle -v
使用aliyun仓库
全局配置
在 GRADLE_USER_HOME/.gradle/
下面创建新 init.gradle文件,输入下面的内容并保存。
init.gradle文件其实是Gradle的初始化脚本(Initialization Scripts),也是运行时的全局配置,每次初始化时,自动去替换工程中的maven仓库位置,指向阿里云。更详细的介绍请参阅官方文档Initialization Scriptsallprojects { repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> if (repo instanceof MavenArtifactRepository && repo.url != null) { def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }
配置2
allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL." remove repo } if (url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL." remove repo } } } maven { url ALIYUN_REPOSITORY_URL url ALIYUN_JCENTER_URL } } }
idea配置
打开file->setting->Build,Execution,Deployment->Gradle,修改Gradle home路径
idea右边gradle窗口
点击idea右上方工具栏View-Tool Windows-Gradle
如果没有Gradle选项
使用Android手机测试提示耗尽堆空间
Exhausted heap space, trying to allocate 4294967312 bytes.
1 byte = 8 bits1KiB 字节关系 1M = 1024k=1024*1024B
在 gradle.properties 文件中添加
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m
DEA中使用Gradle打包出现Expiring Daemon because JVM heap space is exhausted,也就是堆空间耗尽,打包一直失败或出现堆空间好尽,而且cpu占用很高。
找到idea的安装目录,找到下图中的文件打开
修改文件中的堆最大和最小值以及代码缓存大小
-Xms1024m -Xmx2048m -XX:ReservedCodeCacheSize=1024m
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)