目录

配置检查

android - gradle.properties

android - app - build.gradle文件报错

常用命令:

运行慢的问题

查看android\build.gradle文件,如果是下图所示。

 修改Flutter的配置文件flutter.gradle

修改Flutter的配置文件resolve_dependencies.gradle

配置gradle!

下载

设置环境变量

修改本地仓库位置

命令验证

使用aliyun仓库

idea配置

使用Android手机测试提示耗尽堆空间

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_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 Scripts

allprojects {
    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.

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


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐