archlinux flutter开发踩坑

archlinux flutter开发踩坑

💡 原文中文,约11700字,阅读约需28分钟。
📝

内容提要

本文讲述了在Arch Linux上开发Flutter时遇到的构建错误和权限问题,通过更改权限和配置Gradle使用TLS协议解决了问题,并最终使用Android Studio解决了问题。

🔎

延伸解读

权限问题:Flutter 安装目录的所有权

文章显示,构建失败的直接原因是 /opt/flutter 目录权限不足,导致 Gradle 无法创建 .gradle 子目录。使用 sudo chown -R $(whoami) /opt/flutter 将所有权转移给当前用户后,权限错误消失。这提醒在 Arch Linux 上手动安装 Flutter 时,若将 SDK 放在系统目录,需确保当前用户有写权限,否则 Gradle 构建会因无法写入缓存而失败。

TLS 协议配置:解决依赖下载失败

权限问题解决后,构建仍失败,错误指向无法解析 Android 工具库,并提示服务器可能不支持客户端请求的 TLS 协议版本。作者在 gradle.properties 中添加 systemProp.jdk.tls.client.protocols=TLSv1.2,TLSv1.3 后,./gradlew clean 可正常运行。这说明当 Gradle 下载依赖时出现 TLS 握手失败,可尝试显式指定协议版本,但需注意该配置可能因环境而异。

Android Studio 作为最终解决方案

尽管命令行下 ./gradlew clean 已修复,但 ./gradlew assembleDebug 仍无法工作。作者最终通过打开 Android Studio 成功构建项目。这暗示命令行环境可能存在未完全解决的配置差异,而 Android Studio 内置的 Gradle 和 JDK 管理可能自动处理了某些依赖或协议问题。对于类似困境,可尝试用 IDE 构建作为备选方案。

❓

Q&A

在Arch Linux上开发Flutter时,构建失败提示无法创建目录,权限不足,该如何解决?

使用sudo命令更改Flutter目录的权限,赋予当前用户权限:sudo chown -R $(whoami) /opt/flutter。

Gradle报错无法解析插件,提示权限不够,该怎么办?

同样需要更改Flutter目录的权限,运行sudo chown -R $(whoami) /opt/flutter。

构建时出现TLS协议版本不支持的错误,如何配置Gradle?

在gradle.properties文件中添加:systemProp.jdk.tls.client.protocols=TLSv1.2,TLSv1.3。

配置TLS协议后,./gradlew clean可以工作,但assembleDebug仍然失败,怎么办?

可以尝试使用Android Studio来构建项目,文章中提到在Android Studio中成功构建。

在Arch Linux上开发Flutter,遇到构建错误和权限问题,最终的解决方案是什么?

首先更改Flutter目录权限,然后在gradle.properties中配置TLS协议,最后使用Android Studio成功构建项目。

为什么在Arch Linux上Flutter构建会出现权限问题?

因为Flutter安装在/opt/flutter目录下,该目录默认属于root用户,当前用户没有写入权限,导致Gradle无法创建必要的目录和文件。

🏷️

标签

➡️

继续阅读