• Linux 安装 Flutter 开发环境记录(Manjaro)


    1、安装flutter

    直接执行下面命令安装flutterdart

    sudo pacman -S dart flutter
    
    # 设置 flutter 安装目录为 git信任仓库目录
    git config --global --add safe.directory /opt/flutter
    
    # 设置当前用户为 flutter 安装目录的拥有者,不然后面会碰到很多权限问题。
    sudo chown -R $(whoami) /opt/flutter/bin/cache/lockfile
    
    # 对 flutter 缓存目录设置写权限
    sudo chmod a+rwx -R /opt/flutter/bin/cache
    
    # 安装 pkg-config 和 ninja,只是 linux-desktop 平台需要的。
    yay -S pkg-config ninja
    

    配置一下环境变量

    /etc/profile.d 目录下新建一个 flutter.sh 文件,写入以下内容:

    # 设置镜像站点,参考《在中国网络环境下使用 Flutter》
    # https://flutter.cn/community/china
    export PUB_HOSTED_URL=https://pub.flutter-io.cn
    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
    

    安装完成之后,可以运行一下 flutter doctor 命令查看一下安装结果。

    2、安装android开发环境

    如果需要编译安卓apk,则需要安装安卓开发环境。执行下面命令,安装 Android 开发相关软件。

    # 安装安卓SDK
    sudo pacman -S android-sdk
    # 安装安卓NDK
    sudo pacman -S android-ndk
    
    # 安装安装模拟器
    sudo pacman -S android-emulator
    
    # 安装安卓平台API 28版本,就是Android 9.0。也可以根据需要安装对应的版本。
    sudo pacman -S android-platform-28
    
    # 安装android studio(这个也可以不安装)
    sudo pacman -S android-studio
    
    # 安装安卓x86_64系统镜像。也可以根据需要安装对应的版本。
    sudo pacman -S android-x86-64-system-image-28
    
    # 安装 OpenJDK-8
    sudo pacman -S jdk8-openjdk
    

    配置一下环境变量

    /etc/profile.d 目录下新建一个 androidsdk.sh 文件,写入以下内容:

    # 下面是在使用 flutter doctor 检测的时候,输出提示安卓工具链没有安装,按照提示
    # 执行  /opt/android-sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"
    # 这里会失败,输出错误信息,需要使用下面选项,可以在在使用高版本的JDK情况下使用(JDK9/10,再高也出错)
    # 参考: https://cloud.tencent.com/developer/ask/sof/134405
    
    # 这个 JAVA_OPTS 在 JDK-8 下不需要去设置
    #export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
    
    export JAVA_HOME='/usr/lib/jvm/java-8-openjdk'
    
    export PATH=$JAVA_HOME/bin:$PATH
    export ANDROID_SDK_ROOT='/opt/android-sdk'
    export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/
    export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin/
    export PATH=$PATH:$ANDROID_SDK_ROOT/tools/
    

    执行一下flutter doctor,输出如下:

    Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this
    source!
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 3.0.3, on Manjaro Linux 5.15.50-1-MANJARO, locale zh_CN.UTF-8)
    [✗] Android toolchain - develop for Android devices
        ✗ cmdline-tools component is missing
          Run `path/to/sdkmanager --install "cmdline-tools;latest"`
          See https://developer.android.com/studio/command-line for more details.
    [✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
        ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
    [☠] Linux toolchain - develop for Linux desktop (the doctor check crashed)
        ✗ Due to an error, the doctor check did not complete. If the error message below is not
          helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
        ✗ ProcessException: Failed to find "pkg-config" in the search path.
            Command: pkg-config 
    [✓] Android Studio (version 2021.2)
    [✓] Connected device (1 available)
    [✓] HTTP Host Availability
    
    ! Doctor found issues in 3 categories.
    

    然后执行/opt/android-sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"去安装安卓工具链。
    安装过程需要联网下载,可能耗时比较久。

    再次执行flutter doctor

    这里还提示 linux toolchain有问题,是因为我这里还没有安装pkg-configninja,安装了就没问题了。

    执行完成之后再次执行就没有问题了。

    Android Studio相关设置

    安装完成之后,在Android Studio里面设置一下安卓 SDK 的位置,就可以了。设置目录的时候可能无法设置,提示目录没有写权限,执行下面的命令修改就是

    sudo chmod a+w -R /opt/android-sdk
    

    完成上面操作后,在Android-Studio里面的虚拟设备管理(Virtual Device Manager)里面就可以创建新的虚拟设备了(部分设备无法创建,没有对应的镜像可以用,选择Nexus 5等在Play Store列有三角形图标的就是,有这个都可以创建(没有必然联系),没有的不一定能)。

    参考

    在 VS Code 里开发 Flutter 应用
    Flutter 打包 android端 apk
    [在 Linux 操作系统上安装和配置 Flutter 开发环境]https://juejin.cn/post/6844903650704244750
    Flutter C++插件:Linux桌面应用开发

  • 相关阅读:
    Sona && Little Elephant and Array && Little Elephant and Array && D-query && Powerful array && Fast Queries (莫队)
    P1494 [国家集训队]小Z的袜子(luogu)
    【题解】洛谷P1311 [NOIP2011TG] 选择客栈(递推)
    【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)
    【题解】洛谷P2661 [NOIP2015TG] 信息传递
    【题解】洛谷P1065 [NOIP2006TG] 作业调度方案(模拟+阅读理解)
    【题解】洛谷P1032 [NOIP2002TG]字串变换(BFS+字符串)
    [BZOJ2127]happiness-[网络流-最小割]
    [BZOJ3218]a + b Problem-[主席树+网络流-最小割]
    BZOJ4049][CERC2014]Mountainous landscape-[线段树+凸包+二分]
  • 原文地址:https://www.cnblogs.com/oloroso/p/16447161.html
Copyright © 2020-2023  润新知