Android開發(fā)環(huán)境配置避坑指南
本文記錄了本人新入職后,配置開發(fā)環(huán)境過(guò)程中所遇到的問(wèn)題及解決方案,希望能對(duì)大家有所幫助。
網(wǎng)絡(luò)環(huán)境:VPN 注意事項(xiàng)
如果公司內(nèi)部網(wǎng)絡(luò)需要通過(guò) VPN 訪問(wèn),建議關(guān)閉個(gè)人使用的 VPN,避免兩者產(chǎn)生沖突。同時(shí),記得檢查并刪除之前可能通過(guò)命令行設(shè)置的代理,以及 gradle.properties 文件中配置的代理信息,防止它們干擾正常的網(wǎng)絡(luò)連接。
檢查并刪除命令行代理設(shè)置:
# 查看當(dāng)前代理設(shè)置 env | grep -i proxy # 刪除代理環(huán)境變量 unset http_proxy unset https_proxy unset HTTP_PROXY unset HTTPS_PROXY
檢查并清理 gradle.properties 文件:文件位置:~/.gradle/gradle.properties 以及項(xiàng)目根目錄下的 gradle.properties 刪除或注釋掉以下類似配置:
systemProp.http.proxyHost=xxx systemProp.http.proxyPort=xxx systemProp.https.proxyHost=xxx systemProp.https.proxyPort=xxx
工具版本統(tǒng)一:Android Studio & JDK
在加入新項(xiàng)目或團(tuán)隊(duì)時(shí),請(qǐng)主動(dòng)與同事確認(rèn)當(dāng)前推薦使用的版本。以避免因環(huán)境差異導(dǎo)致編譯或運(yùn)行問(wèn)題,強(qiáng)烈建議團(tuán)隊(duì)成員之間保持 Android Studio 和 JDK 版本的統(tǒng)一。
Gerrit的郵箱配置至關(guān)重要
如果你所在的公司使用 Gerrit 進(jìn)行代碼管理,務(wù)必在首次提交代碼前,正確配置好你的 Git 郵箱,確保其與 Gerrit 系統(tǒng)中的注冊(cè)郵箱一致。Gerrit 通過(guò)郵箱來(lái)識(shí)別提交者。
如果不慎在郵箱配置錯(cuò)誤的情況下提交了代碼,不要慌張。建議先通過(guò) git log 或其他方式保存好你的代碼修改內(nèi)容(例如使用 git diff > my_changes.patch),然后刪除當(dāng)前本地分支 (git branch -D <branch_name>),重新從遠(yuǎn)程倉(cāng)庫(kù)拉取分支,應(yīng)用你的修改,最后再重新提交。
Git拉取和提交代碼:Merge vs Rebase
在拉取或提交代碼前,請(qǐng)務(wù)必與團(tuán)隊(duì)成員或項(xiàng)目負(fù)責(zé)人確認(rèn)推薦的代碼合并策略。有的項(xiàng)目要求使用 git merge,有的則傾向于使用 git rebase 來(lái)保持提交歷史的線性。
如果操作失誤(例如錯(cuò)誤地使用了 merge 而非 rebase),同樣可以通過(guò)刪除本地分支,重新拉取并按正確方式操作來(lái)補(bǔ)救。
第一次提交代碼時(shí),建議在有經(jīng)驗(yàn)的同事指導(dǎo)下進(jìn)行。這樣可以避免因操作不當(dāng)引入錯(cuò)誤,甚至污染遠(yuǎn)程倉(cāng)庫(kù),給其他團(tuán)隊(duì)成員帶來(lái)麻煩。
解決 missing Change-Id in message footer 錯(cuò)誤
在向 Gerrit 提交代碼時(shí),有時(shí)會(huì)遇到 missing Change-Id in message footer 的錯(cuò)誤。這是因?yàn)?Gerrit 需要在每個(gè) Git 提交的 Commit Message 末尾包含一個(gè)唯一的 Change-Id 來(lái)跟蹤代碼審查。
通常,Gerrit 會(huì)提供一個(gè) commit-msg 鉤子腳本來(lái)自動(dòng)生成 Change-Id。如果你的本地倉(cāng)庫(kù)缺少這個(gè)鉤子,可以通過(guò)以下命令從 Gerrit 服務(wù)器獲取并安裝(請(qǐng)記得替換命令中的地址和用戶名):
gitdir=$(git rev-parse --git-dir)
scp -p -P 29418 xxx@xxx.com:hooks/commit-msg ${gitdir}/hooks/
# 確保腳本有執(zhí)行權(quán)限
chmod +x ${gitdir}/hooks/commit-msg
安裝完鉤子后,對(duì)于已經(jīng)提交但缺少 Change-Id 的 commit,可以使用以下命令來(lái)修正(它會(huì)重新打開編輯器讓你確認(rèn) commit message,然后自動(dòng)添加 Change-Id):
git commit --amend
如果你不需要修改 commit message,只想讓鉤子自動(dòng)添加 Change-Id,可以使用:
git commit --amend --no-edit
代碼修改后運(yùn)行不生效?
這是一個(gè)比較常見的"玄學(xué)"問(wèn)題。當(dāng)你修改了代碼,重新運(yùn)行應(yīng)用后發(fā)現(xiàn)改動(dòng)并未生效時(shí),可以嘗試以下方法:
啟用 Package Manager 安裝:在 Android Studio 的
Run/Debug Configurations中,找到你的應(yīng)用配置,勾選Always install with package manager (disables deploy optimizations on Android 11 and later)選項(xiàng)。這個(gè)選項(xiàng)會(huì)強(qiáng)制使用包管理器進(jìn)行安裝,有時(shí)能解決部署優(yōu)化帶來(lái)的問(wèn)題。關(guān)閉 HotSwap:如果上一步無(wú)效,可以嘗試關(guān)閉 HotSwap 功能。HotSwap 旨在加速代碼部署,但有時(shí)也可能導(dǎo)致狀態(tài)不一致。
以上就是Android開發(fā)環(huán)境配置避坑指南的詳細(xì)內(nèi)容,更多關(guān)于Android配置避坑的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android UI系列-----Dialog對(duì)話框示例
本篇文章主要介紹了Android UI系列-----Dialog對(duì)話框示例,在界面上彈出一個(gè)Dialog對(duì)話框使我們經(jīng)常需要做的,有需要的可以了解一下。2017-01-01
Flutter?+?Idea?環(huán)境搭建及配置教程
本文主要總結(jié)我實(shí)際搭建的過(guò)程,最后發(fā)現(xiàn)不一定按網(wǎng)上那些博客或者官方文檔寫的來(lái)也可以搭建成功,在這里小編給大家分享下Flutter?+?Idea?環(huán)境搭建及配置教程,感興趣的朋友參考下吧2021-12-12
Android USB轉(zhuǎn)串口通信開發(fā)實(shí)例詳解
這篇文章主要介紹了 Android USB轉(zhuǎn)串口通信開發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android 掃描附近的藍(lán)牙設(shè)備并連接藍(lán)牙音響的示例
本篇文章主要介紹了Android 掃描附近的藍(lán)牙設(shè)備并連接藍(lán)牙音響的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09
Android啟動(dòng)頁(yè)用戶相關(guān)政策彈框的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android啟動(dòng)頁(yè)用戶相關(guān)政策彈框的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Android?Studio打包?aar實(shí)現(xiàn)步驟示例詳解
這篇文章主要為大家介紹了Android?Studio打包aar步驟示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Android View教程之自定義驗(yàn)證碼輸入框效果
這篇文章主要給大家介紹了關(guān)于Android View教程之自定義驗(yàn)證碼輸入框效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Android?PickerScrollView滑動(dòng)選擇控件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android?PickerScrollView滑動(dòng)選擇控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android 適配器模式應(yīng)用及設(shè)計(jì)原理
這篇文章主要介紹了Android 適配器模式應(yīng)用及設(shè)計(jì)原理的相關(guān)資料,Android開發(fā)者應(yīng)該都知道適配器會(huì)用,但是不是多清楚原理,這里幫大家分析下原理,需要的朋友可以參考下2016-10-10

