ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux下Android Studio 2021.1.1.22安装与配置全指南

Linux下Android Studio 2021.1.1.22安装与配置全指南 简介Android Studio Bumblebeeandroid-studio-2021.1.1.22-linux是面向 Linux 平台 Android 开发者的官方集成开发环境安装包可视为 Android Studio 4.4 版本于 2022 年 1 月发布稳定版、2 月推出 Patch 2。它适合需要升级 IDE、使用大黄蜂新特性进行应用开发与调试的初中高级工程师解决旧版本在构建、调试与工具链支持上的不足。压缩包为 gz 格式共约 2000 个文件整体约 904.35MB内含 1012 个 py 脚本、689 个 jar 库、250 个 json 配置、200 个 ttf 字体、164 个 webp 图片、131 个 so 动态库以及大量 xml、layout、properties 等资源覆盖 IDE 运行所需的插件、模板与本地化组件。目前已有 346 人学习下载。该资源提供完整的 Linux 版安装目录结构便于读者直接部署开发环境并借助内置的布局编辑器、性能分析器与 Kotlin 工具链提升编码效率适合作为搭建 Android 开发工作站的可靠基础包。1. 为什么 2021 年的 Bumblebee 在 Linux 上依然值得装一遍如果你手头有一台 Ubuntu 或者 Debian 的机器想跑 Android 开发又不想被最新版 IDE 的插件兼容性和内存占用折腾那android-studio-2021.1.1.22-linux这个包值得认真看一眼。Bumblebee 是 Android Studio 的一个版本代号对应 2021.1.1 系列这个版本在 Linux 上的稳定性口碑一直不错尤其是对老显卡驱动、旧内核和低内存环境的容忍度比后面几个大版本要友好得多。很多人搜android studio 国内下载或者android studio 官网其实真正想要的是一个能直接解压就跑、不用折腾依赖的 Linux 包这个压缩包就是干这个的。它适合谁适合在 Linux 桌面做 Android 应用开发、需要稳定 Gradle 构建环境、或者想给旧笔记本续命当开发机的从业者。下面我从解压到跑通第一个项目把中间会翻车的地方都拆开讲。2. 解压、目录结构与首次启动把黑匣子拆开看2.1 包内到底有什么为什么不是双击安装拿到android-studio-2021.1.1.22-linux这个包常见形式是.tar.gz压缩包。Linux 下 Android Studio 从来不走系统包管理器那一套官方给的就是一个自包含的目录树解压完直接运行bin/studio.sh。这跟 Windows 下.exe安装器逻辑完全不同也是很多人第一次在 Linux 上装 Android Studio 时懵掉的地方。先看解压后的顶层结构我一般会先ls一遍再动手tar -zxvf android-studio-2021.1.1.22-linux.tar.gz -C /opt/ cd /opt/android-studio ls -1你会看到类似这样的目录目录/文件作用bin/启动脚本studio.sh、idea.properties等jbr/内置 JetBrains RuntimeBumblebee 自带 JDK 11lib/IDE 核心 jar 包不要手动改plugins/预装插件Android 和 Kotlin 插件都在里面gradle/内置 Gradle 发行版相关文件这里有个关键点Bumblebee 自带 JBR 11你系统里装的是 JDK 8 还是 JDK 17 都不直接影响 IDE 启动但会影响 Gradle 构建。常见做法是 IDE 用自带 JBR项目构建用系统 JDK两者分开管。解压路径建议放/opt/或者~/apps/不要放/tmp因为 Android Studio 会在安装目录旁边写配置和缓存重启后/tmp被清掉会丢配置。如果你用/opt/记得给当前用户读写权限sudo chown -R $USER:$USER /opt/android-studio这一步不做后面 IDE 想自动更新或者写idea.properties就会报权限错误现象是启动时弹窗说无法写入配置目录很多人以为是安装包坏了其实是权限问题。2.2 首次启动都干了什么SDK 到底装在哪运行启动脚本cd /opt/android-studio/bin ./studio.sh第一次启动会走一个 Setup Wizard问你要不要导入旧配置、选主题、然后重点来了它会让你指定 Android SDK 路径。Bumblebee 默认建议~/Android/Sdk我建议就按默认来不要改到系统目录。原因很简单SDK 里会下载大量平台工具、构建工具、系统镜像放用户目录下权限最干净后面命令行工具sdkmanager、adb也不用 sudo。如果你之前装过其他版本的 Android StudioSetup Wizard 可能会检测到旧配置目录~/.config/Google/AndroidStudio2021.1导入旧配置有时候会把旧版本的插件索引带进来导致启动卡在 “Indexing” 很久。血泪经验是跨大版本升级时首次启动选 “Do not import settings”等跑通后再手动迁移快捷键和代码风格配置。启动完成后验证 SDK 是否就位ls ~/Android/Sdk # 应该看到 platforms/ build-tools/ platform-tools/ 等 ~/Android/Sdk/platform-tools/adb version如果adb version能输出版本号说明 SDK 基础组件没问题。如果提示No such file or directory说明 Setup Wizard 里 SDK 下载没完成常见原因是网络中断重新打开 SDK Manager 补下载即可。注意Bumblebee 的 SDK Manager 在Tools SDK Manager不要跟File Project Structure里的 SDK 设置搞混前者管全局 SDK 组件后者管当前项目用哪个 SDK。3. 把项目跑起来Gradle、JDK 与 SDK 三者的对齐3.1 Gradle JDK 选错构建直接翻车Bumblebee 默认用自带 JBR 11 跑 IDE但 Gradle 构建用的 JDK 是另一回事。你新建一个项目Gradle Sync 阶段报的最多的错就是 JDK 版本不匹配。比如项目build.gradle里写了sourceCompatibility JavaVersion.VERSION_1_8而你 Gradle JDK 指向了 JDK 17就可能出现Unsupported class file major version这类错误。在 Bumblebee 里设置 Gradle JDK 的路径是File Settings Build, Execution, Deployment Build Tools Gradle找到Gradle JDK下拉框。我一般会# 先看系统里有哪些 JDK ls /usr/lib/jvm/ # 常见输出 # java-1.8.0-openjdk-amd64 # java-11-openjdk-amd64 # java-17-openjdk-amd64然后在 Gradle JDK 里选 JDK 11 或者 JDK 8具体看项目要求。Bumblebee 时代大多数 Android 项目还是 JDK 11 或 JDK 8选 JDK 17 容易触发 AGP 版本不兼容。参数上Gradle JDK只影响 Gradle 守护进程和构建脚本执行不影响 IDE 自身运行这个边界要分清。如果你想让命令行构建也一致在项目根目录gradle.properties里加org.gradle.java.home/usr/lib/jvm/java-11-openjdk-amd64这行指定 Gradle 用哪个 JDK优先级高于环境变量JAVA_HOME。注意路径要写绝对路径写错会直接报Could not determine java version。3.2 SDK 路径与local.properties的坑新建项目后Android Studio 会在项目根目录生成local.properties里面写sdk.dir/home/你的用户名/Android/Sdk。这个文件不应该提交到 Git因为它跟本机路径绑定。团队协作时别人拉下你的项目local.properties里的路径在他机器上不存在Gradle Sync 就会报SDK location not found。解决办法有两种。第一种让每个人自己生成local.propertiesAndroid Studio 打开项目时会自动补。第二种在环境变量里设ANDROID_HOMEexport ANDROID_HOME$HOME/Android/Sdk export PATH$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin把这两行加到~/.bashrc或~/.zshrcGradle 找不到local.properties时会回退到ANDROID_HOME。我一般两个都配local.properties留给 IDE环境变量留给命令行互不干扰。验证 SDK 是否被正确识别cd 你的项目目录 ./gradlew tasks如果能看到任务列表输出说明 Gradle、JDK、SDK 三者对齐了。如果报SDK location not found先检查local.properties和环境变量再检查 SDK 目录里platforms/下有没有对应 API 级别的目录。3.3 国内下载依赖慢怎么改仓库地址Gradle Sync 卡在下载依赖是高频问题尤其是google()和mavenCentral()在国内访问不稳定。常见做法是在项目根目录build.gradle里把仓库地址换成国内镜像。注意 Bumblebee 时代用的是 Groovy DSL 的buildscript和allprojects块不是后来 Kotlin DSL 的settings.gradle集中管理。// 项目根目录 build.gradle buildscript { repositories { maven { url https://maven.aliyun.com/repository/google } maven { url https://maven.aliyun.com/repository/public } google() mavenCentral() } } allprojects { repositories { maven { url https://maven.aliyun.com/repository/google } maven { url https://maven.aliyun.com/repository/public } google() mavenCentral() } }逻辑说明Gradle 按声明顺序依次尝试仓库阿里云镜像放前面命中就直接下载没命中再走google()和mavenCentral()。参数上maven { url ... }里的地址不要带尾部斜杠否则某些 Gradle 版本会拼出双斜杠导致 404。改完仓库后如果之前已经下载了一半的依赖损坏执行./gradlew --refresh-dependencies强制刷新。提示改仓库地址只影响依赖下载不影响 SDK 组件下载。SDK Manager 的下载源在Settings Appearance Behavior System Settings HTTP Proxy里配跟 Gradle 仓库是两套东西。4. 避坑与排查Linux 桌面环境下的五个真实翻车记录4.1 启动报Unable to access Android SDK add-on list现象首次启动时弹窗提示Unable to access Android SDK add-on list然后 Setup Wizard 卡住或者跳过 SDK 下载。原因这个报错本质是 IDE 尝试访问 Google 的 SDK 附加组件列表网络不通或者被拦截。它不一定代表 SDK 没装好只是列表拉不到。解决点Cancel跳过进入主界面后手动打开 SDK Manager在SDK Platforms和SDK Tools里勾选需要的组件下载。如果 SDK Manager 里也拉不到列表检查HTTP Proxy设置或者先用命令行sdkmanager --list看能否输出。4.2 中文输入法在 IDE 里候选框飘走现象在 Linux 桌面用 fcitx 或 ibus 输入中文时候选框位置乱飘或者输入法状态跟 IDE 不同步。原因JetBrains 系 IDE 的输入法支持依赖 XIM 协议跟部分输入法框架的兼容性有玄学问题。Bumblebee 自带的 JBR 11 对 fcitx 的支持比后面版本要保守。解决在Help Edit Custom VM Options里加一行-Drecreate.x11.input.methodtrue重启 IDE。如果还不行换 fcitx5 或者把输入法切换到 XIM 模式。这个坑没有一劳永逸的方案不同桌面环境表现不一样我一般建议先在终端里确认输入法本身正常再排查 IDE。4.3 Gradle Sync 报Could not find method implementation()现象Sync 时报Could not find method implementation() for arguments [...]。原因这个错通常出现在build.gradle的dependencies块里但根因是 Gradle 版本太老不认识implementation这个配置。Bumblebee 新建项目默认 Gradle 7.x但如果你的项目是从更老的版本迁移过来的gradle-wrapper.properties里可能还写着 Gradle 4.x。解决检查gradle/wrapper/gradle-wrapper.properties里的distributionUrl确保 Gradle 版本在 7.0 以上。改完执行./gradlew wrapper --gradle-version 7.2更新 wrapper。注意 Gradle 版本和 AGP 版本有对应关系Bumblebee 对应 AGP 7.1 左右不要盲目升到最新。4.4 模拟器在 Linux 上起不来报 KVM 相关错误现象启动 Android 模拟器时提示/dev/kvm权限不足或者KVM is required to run this AVD。原因Linux 上模拟器加速依赖 KVM当前用户不在kvm组里或者 BIOS 里没开虚拟化。解决# 检查 kvm 模块 lsmod | grep kvm # 把当前用户加入 kvm 组 sudo usermod -aG kvm $USER # 重新登录后验证 groups如果lsmod没有输出说明内核模块没加载需要在 BIOS 里开启 VT-x 或 AMD-V。加入kvm组后必须重新登录才生效这个后悔药很多人不知道改完直接开模拟器还是报错以为没生效。4.5 项目移植到 Linux 后文件路径大小写问题现象在 Windows 上正常的项目移植到 Linux 后编译报Cannot find symbol或者资源找不到。原因Linux 文件系统区分大小写Windows 不区分。代码里import com.example.MyClass但文件名是myclass.javaWindows 下能过Linux 下直接挂。解决用find和grep排查大小写不一致的引用# 找出所有 java 文件的实际文件名 find . -name *.java | sort # 对比 import 语句里的大小写 grep -r ^import --include*.java . | sort移植项目时我一般会先在 Linux 下跑一次./gradlew assembleDebug把所有大小写问题暴露出来再逐个改。这个坑在android studio 移植android studio项目场景里特别常见提前跑一遍能省很多时间。5. 进阶技巧用命令行工具链把 Bumblebee 用出花Bumblebee 装好之后很多人只把它当图形界面用其实它自带的命令行工具链才是效率大头。我习惯把~/Android/Sdk/platform-tools和~/Android/Sdk/cmdline-tools/latest/bin都加进PATH这样adb、sdkmanager、avdmanager随处可用。先确认cmdline-tools装没装。Bumblebee 的 SDK Manager 里有一项Android SDK Command-line Tools勾上安装。装完后路径通常是~/Android/Sdk/cmdline-tools/latest/bin。如果目录名是cmdline-tools/latest之外的手动改一下或者重新装。用sdkmanager批量装组件比图形界面快sdkmanager platforms;android-31 build-tools;31.0.0 platform-tools参数说明platforms;android-31是 Android 12 的平台build-tools;31.0.0是对应构建工具版本。分号在 shell 里要加引号否则会被解释成命令分隔符。装之前可以sdkmanager --list看有哪些可用版本输出很长配合grep过滤sdkmanager --list | grep platforms;android-3用avdmanager创建模拟器适合脚本化批量建avdmanager create avd -n pixel_api31 -k system-images;android-31;google_apis;x86_64 -d pixel-n是 AVD 名字-k是系统镜像包名-d是设备型号。创建完用emulator -avd pixel_api31启动。注意emulator命令在~/Android/Sdk/emulator/下不在platform-tools里PATH 要单独加。还有一个我常用的技巧用adb无线调试。Bumblebee 时代 Android 11 以上支持无线配对但需要先 USB 连一次adb tcpip 5555 adb connect 手机IP:5555之后拔掉 USB 也能调试。参数5555是默认端口如果被占用可以换。这个在真机调试时特别省事不用一直插着线。最后说一个验证 Bumblebee 是否装干净的笨办法新建一个 Empty Activity 项目不改任何配置直接点 Run。如果能在模拟器或真机上跑起来说明 IDE、Gradle、JDK、SDK、模拟器整条链路都通了。这个动作我每次装完新版本都会走一遍比看任何日志都直观。从那以后我每次在 Linux 上装 Android Studio都强制先跑一遍空项目再导入正式工程省得把环境问题和项目问题搅在一起排查。希望帮到你。本文还有配套的精品资源点击获取
返回列表