Android开发环境配置避坑指南

 更新时间:2025年05月03日 08:04:37   作者:好学人  
本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、Merge vs Rebase、代码修改后运行不生效等问题的解决方法,需要的朋友可以参考下

本文记录了本人新入职后,配置开发环境过程中所遇到的问题及解决方案,希望能对大家有所帮助。

网络环境:VPN 注意事项

如果公司内部网络需要通过 VPN 访问,建议关闭个人使用的 VPN,避免两者产生冲突。同时,记得检查并删除之前可能通过命令行设置的代理,以及 gradle.properties 文件中配置的代理信息,防止它们干扰正常的网络连接。

检查并删除命令行代理设置:

# 查看当前代理设置
env | grep -i proxy

# 删除代理环境变量
unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

检查并清理 gradle.properties 文件:文件位置:~/.gradle/gradle.properties 以及项目根目录下的 gradle.properties 删除或注释掉以下类似配置:

systemProp.http.proxyHost=xxx
systemProp.http.proxyPort=xxx
systemProp.https.proxyHost=xxx
systemProp.https.proxyPort=xxx

工具版本统一:Android Studio & JDK

在加入新项目或团队时,请主动与同事确认当前推荐使用的版本。以避免因环境差异导致编译或运行问题,强烈建议团队成员之间保持 Android Studio 和 JDK 版本的统一。

Gerrit的邮箱配置至关重要

如果你所在的公司使用 Gerrit 进行代码管理,务必在首次提交代码前,正确配置好你的 Git 邮箱,确保其与 Gerrit 系统中的注册邮箱一致。Gerrit 通过邮箱来识别提交者。

如果不慎在邮箱配置错误的情况下提交了代码,不要慌张。建议先通过 git log 或其他方式保存好你的代码修改内容(例如使用 git diff > my_changes.patch),然后删除当前本地分支 (git branch -D <branch_name>),重新从远程仓库拉取分支,应用你的修改,最后再重新提交。

Git拉取和提交代码:Merge vs Rebase

在拉取或提交代码前,请务必与团队成员或项目负责人确认推荐的代码合并策略。有的项目要求使用 git merge,有的则倾向于使用 git rebase 来保持提交历史的线性。

如果操作失误(例如错误地使用了 merge 而非 rebase),同样可以通过删除本地分支,重新拉取并按正确方式操作来补救。

第一次提交代码时,建议在有经验的同事指导下进行。这样可以避免因操作不当引入错误,甚至污染远程仓库,给其他团队成员带来麻烦。

解决 missing Change-Id in message footer 错误

在向 Gerrit 提交代码时,有时会遇到 missing Change-Id in message footer 的错误。这是因为 Gerrit 需要在每个 Git 提交的 Commit Message 末尾包含一个唯一的 Change-Id 来跟踪代码审查。

通常,Gerrit 会提供一个 commit-msg 钩子脚本来自动生成 Change-Id。如果你的本地仓库缺少这个钩子,可以通过以下命令从 Gerrit 服务器获取并安装(请记得替换命令中的地址和用户名):

gitdir=$(git rev-parse --git-dir)
scp -p -P 29418 xxx@xxx.com:hooks/commit-msg ${gitdir}/hooks/
# 确保脚本有执行权限
chmod +x ${gitdir}/hooks/commit-msg

安装完钩子后,对于已经提交但缺少 Change-Id 的 commit,可以使用以下命令来修正(它会重新打开编辑器让你确认 commit message,然后自动添加 Change-Id):

git commit --amend

如果你不需要修改 commit message,只想让钩子自动添加 Change-Id,可以使用:

git commit --amend --no-edit

代码修改后运行不生效?

这是一个比较常见的"玄学"问题。当你修改了代码,重新运行应用后发现改动并未生效时,可以尝试以下方法:

  • 启用 Package Manager 安装:在 Android Studio 的 Run/Debug Configurations 中,找到你的应用配置,勾选 Always install with package manager (disables deploy optimizations on Android 11 and later) 选项。这个选项会强制使用包管理器进行安装,有时能解决部署优化带来的问题。

  • 关闭 HotSwap:如果上一步无效,可以尝试关闭 HotSwap 功能。HotSwap 旨在加速代码部署,但有时也可能导致状态不一致。

以上就是Android开发环境配置避坑指南的详细内容,更多关于Android配置避坑的资料请关注脚本之家其它相关文章!

相关文章

  • Android UI系列-----Dialog对话框示例

    Android UI系列-----Dialog对话框示例

    本篇文章主要介绍了Android UI系列-----Dialog对话框示例,在界面上弹出一个Dialog对话框使我们经常需要做的,有需要的可以了解一下。
    2017-01-01
  • Flutter + Idea 环境搭建及配置教程

    Flutter + Idea 环境搭建及配置教程

    本文主要总结我实际搭建的过程,最后发现不一定按网上那些博客或者官方文档写的来也可以搭建成功,在这里小编给大家分享下Flutter + Idea 环境搭建及配置教程,感兴趣的朋友参考下吧
    2021-12-12
  • Android USB转串口通信开发实例详解

    Android USB转串口通信开发实例详解

    这篇文章主要介绍了 Android USB转串口通信开发实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android 扫描附近的蓝牙设备并连接蓝牙音响的示例

    Android 扫描附近的蓝牙设备并连接蓝牙音响的示例

    本篇文章主要介绍了Android 扫描附近的蓝牙设备并连接蓝牙音响的示例,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • Android启动页用户相关政策弹框的实现代码

    Android启动页用户相关政策弹框的实现代码

    这篇文章主要介绍了Android启动页用户相关政策弹框的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Android Studio打包 aar实现步骤示例详解

    Android Studio打包 aar实现步骤示例详解

    这篇文章主要为大家介绍了Android Studio打包aar步骤示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Android View教程之自定义验证码输入框效果

    Android View教程之自定义验证码输入框效果

    这篇文章主要给大家介绍了关于Android View教程之自定义验证码输入框效果的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Flutter 给列表增加下拉刷新和上滑加载更多功能

    Flutter 给列表增加下拉刷新和上滑加载更多功能

    在实际的 App 中,下拉刷新和上滑加载更多是非常常见的交互形式。在 Flutter 中,有 flutter_easyrefresh开源插件用于实现下拉刷新和上滑加载更多。本篇介绍了有状态组件和 flutter_easyrefresh 的基本应用,同时使用模拟的方式完成了异步数据加载。
    2021-05-05
  • Android PickerScrollView滑动选择控件使用方法详解

    Android PickerScrollView滑动选择控件使用方法详解

    这篇文章主要为大家详细介绍了Android PickerScrollView滑动选择控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Android 适配器模式应用及设计原理

    Android 适配器模式应用及设计原理

    这篇文章主要介绍了Android 适配器模式应用及设计原理的相关资料,Android开发者应该都知道适配器会用,但是不是多清楚原理,这里帮大家分析下原理,需要的朋友可以参考下
    2016-10-10

最新评论