構(gòu)建Mod開發(fā)環(huán)境很難嗎
(本文限于Java版1.12.2模組開發(fā))
說(shuō)實(shí)話,難。比做mod還難一些。
本文介紹Mod開發(fā)環(huán)境的構(gòu)建原理,并匯總幾個(gè)常見的問(wèn)題,還有解決的方案。

要想在理解的基礎(chǔ)上診斷、解決問(wèn)題,就得先搞懂開發(fā)環(huán)境的層次。
【表層】
你的代碼
IDE(Integrated Development Environment,集成開發(fā)環(huán)境,一般是IDEA或者Eclipse)
MDK(Mod Development Kit,模組開發(fā)包,就是官方的MDK或者我的IDF)
Gradle(用于編譯、整合依賴庫(kù)的東西)
JDK (Java Development Kit,用來(lái)寫Java的東西)
操作系統(tǒng)(Windows)
硬件(筆記本、臺(tái)式機(jī))
【底層】
要想正常地開發(fā),就得讓這些東西每一個(gè)都由上到下地承接好。如果下面的東西沒(méi)有正確部署,上面的也就無(wú)從談起。我們從下往上看。
首先,你需要一個(gè)設(shè)備??磕X子和紙筆只能構(gòu)思,做不出可以玩的mod。
接著,你需要一個(gè)操作系統(tǒng)。我的建議是使用Windows,這樣我方便幫你。別的理論上也可,但出了什么岔子我就愛(ài)莫能助了。
大部分人都有windows系統(tǒng),哪怕是蘋果機(jī)也有的裝了windows,所以這部分一般沒(méi)什么問(wèn)題,但接下來(lái)部分就是出岔子的??土?。

JDK問(wèn)題!
【問(wèn)題1:系統(tǒng)變量配置錯(cuò)誤】
Gradle需要使用JDK。那么,Gradle怎么找到你系統(tǒng)的JDK呢?答案是靠環(huán)境變量JAVA_PATH。你可能以為自己裝了JDK,系統(tǒng)自然會(huì)配置好,實(shí)則不然。已經(jīng)有倆人因?yàn)闃?gòu)建失敗加我的群,我一看是因?yàn)镴AVA_PATH配錯(cuò)了。
那么JDK安裝的時(shí)候?yàn)槭裁床荒芙o你配好這東西呢,它是腦殘嗎?事實(shí)上,既然是開發(fā)MCmod的人,十有八九會(huì)玩MC,但是玩MC就需要裝Java。而一般玩MC裝的這個(gè)Java,它是JRE(Java Runtime Environment,Java運(yùn)行庫(kù))。JDK包含一個(gè)JRE,但JRE不能當(dāng)JDK使。在你裝JRE的時(shí)候,系統(tǒng)很可能把JAVA_PATH配成它了。之后裝JDK如果不改的話,Gradle就會(huì)由于找到了JRE的那個(gè)java而無(wú)法工作。
解決:把JAVA_PATH改成JDK的安裝路徑。改系統(tǒng)變量的過(guò)程,不同系統(tǒng)有所區(qū)別,為了解決篇幅就不講了。百度一下即可。

【問(wèn)題2:Java版本不正確,Gradle版本不正確,IDEA版本不正確】
如果你只是百度“JDK”,那你十有八九會(huì)下載到最新版的JDK,也就是JDK15。很不幸的,馬上你就會(huì)見到各種邪門的互相不兼容,包括gradle不兼容新版Java,idea不兼容舊版gradle,Idea不兼容舊版java……
一個(gè)可行的組合是JDK 8 + Gradle 2.14 + IDEA 2019.4。
其中,JDK和IDEA的版本是自己下的;Gradle的版本是由MDK指定的。
如果你覺(jué)得一頭扎進(jìn)互不兼容很有意思,那你大可偷懶都下最新版,然后焦頭爛額地發(fā)現(xiàn)還是得按照我的組合來(lái)。
很多教程都沒(méi)有提到這點(diǎn),多半是因?yàn)樗鼈冧浿频哪甏缌?,那時(shí)還沒(méi)這么多新版本,尤其是沒(méi)有傲嬌的IDEA 2020。
好了,下載JDK的過(guò)程也相當(dāng)惡心,你需要在一個(gè)國(guó)外的英文網(wǎng)站里,注冊(cè)O(shè)racle賬戶,還要找到指定的版本,并且確保你的瀏覽器不會(huì)因?yàn)閎ug讓你點(diǎn)不開下載按鈕。這算是很好解決的問(wèn)題了,因?yàn)榻鉀Q這個(gè)不需要懂代碼,只需要能看懂一點(diǎn)點(diǎn)英文,還有多于一個(gè)的瀏覽器儲(chǔ)備。
JDK裝好了,然后呢?且聽下回分解……不,我繼續(xù)說(shuō)。

Gradle問(wèn)題!
【問(wèn)題3:Gradle下載失敗】
1,要部署MDK,就需要用Gradle;
2,要用Gradle,就要先下載Gradle。
這兩步本來(lái)無(wú)比輕松,卻因?yàn)榫W(wǎng)絡(luò)遠(yuǎn)隔重洋,下載慢的令人發(fā)指,兩者都可能失敗。由于某些文件有大約20MB,在1KB/s的速度下可能超過(guò)30分鐘——被判定為下載超時(shí),強(qiáng)制中斷。那么,你以為重新下載一次就能好了?這慢不是因?yàn)榫W(wǎng)絡(luò)波動(dòng),他是固有的慢,無(wú)論重試幾次都不行。
這種時(shí)候,要么就用魔法加速網(wǎng)絡(luò),要么就找人給你個(gè)下載完成的,扔到gradle的目錄。
你看國(guó)外的教程當(dāng)然是不會(huì)提到這一點(diǎn)的。國(guó)內(nèi)的教程……早年間也沒(méi)這么卡,也大多沒(méi)有提及。
IDF是自帶第2步的加速的,但第1步?jīng)]有,因?yàn)槲也恢勒铀偎?/p>
【問(wèn)題4:Gradle運(yùn)行失敗——緩存損壞】
由于你之前下載文件到一半中斷了,緩存可能損壞。這個(gè)時(shí)候重新下一次也許可以。如果不行,嗯……全刪了,找個(gè)人給你下載好的文件吧。

【問(wèn)題5:Gradle運(yùn)行失敗——內(nèi)存不足】
IDF默認(rèn)配置使用3G內(nèi)存跑Gradle,MDK若我沒(méi)記錯(cuò)是2G,但有的電腦可能不夠。這種時(shí)候把gradle.properties里的org.gradle.jvmargs=-Xmx3G改成org.gradle.jvmargs=-Xmx1G即可。如果你電腦連1G內(nèi)存都分配不出來(lái)趁早放棄吧。注意我說(shuō)的是內(nèi)存,不是硬盤。

IDEA出問(wèn)題?
IDEA版本的問(wèn)題被我寫在第2條里了。

就這么多。我去賞析明日方舟新活動(dòng)了,各位再見。