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 ListView之setEmptyView正确使用方法

    Android ListView之setEmptyView正确使用方法

    这篇文章主要介绍了Android ListView之setEmptyView正确使用方法的相关资料,希望通过本文能帮助到大家使用该方法,需要的朋友可以参考下
    2017-09-09
  • 动态添加LinearLayout的高度实例

    动态添加LinearLayout的高度实例

    下面小编就为大家带来一篇动态添加LinearLayout的高度实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Android编程之简单逐帧动画Frame的实现方法

    Android编程之简单逐帧动画Frame的实现方法

    这篇文章主要介绍了Android编程之简单逐帧动画Frame的实现方法,结合实例较为详细的分析了Android逐帧动画的原理、步骤与具体实现技巧,需要的朋友可以参考下
    2015-12-12
  • Dcloud的native.js直接拨打电话Android实例代码

    Dcloud的native.js直接拨打电话Android实例代码

    本文为大家分享了3种利用Dcloud的native.js直接拨打电话实例代码,由于iOS系统的限制所以只有Android版实例
    2018-09-09
  • Android中使用AndroidTestCase的方法实例

    Android中使用AndroidTestCase的方法实例

    这篇文章主要介绍了Android中使用AndroidTestCase的方法实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • Android实现图片滚动和页签控件功能的实现代码

    Android实现图片滚动和页签控件功能的实现代码

    这篇文章主要介绍了Android实现图片滚动控件含页签功能的实现代码,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
    2018-05-05
  • Android读取资源文件的方法

    Android读取资源文件的方法

    这篇文章主要介绍了Android读取资源文件的方法的相关资料,这里提供两种方法及实例,需要的朋友可以参考下
    2017-08-08
  • Android相关硬件信息的获取方式整理汇总

    Android相关硬件信息的获取方式整理汇总

    在Android系统中,获取硬件信息是开发者经常需要进行的操作,特别是在开发与硬件性能密切相关的应用时,在深入探讨如何获取Android设备的硬件信息之前,我们首先需要了解一些基本概念和方法,感兴趣的小伙伴跟着小编一起来看看吧
    2025-05-05
  • Android实现拍照截图功能

    Android实现拍照截图功能

    这篇文章主要介绍了Android实现拍照截图功能,简单介绍了Android实现拍照截图功能的步骤,供大家参考,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android使用Sqlite存储数据用法示例

    Android使用Sqlite存储数据用法示例

    这篇文章主要介绍了Android使用Sqlite存储数据的方法,结合实例形式分析了Android操作SQLite数据库的相关步骤与操作技巧,需要的朋友可以参考下
    2016-11-11

最新评论