先把工具下載好。工欲善其事,必先利其器挚币。
官方推薦是 Android Studio 3.4 亮蒋、Android NDK rev. 16b 、Android SDK 8.1
注意:先把 Telegrm Web 登錄進(jìn)去妆毕,萬一成功的話慎玖,可能會需要的
我從官方的 git 倉庫 fork 了一份出來
git clone https://github.com/jimbray/Telegram.git
open(不是import)項(xiàng)目 TMessagesProj
首先按照官方教程一步一步來。
第一步
復(fù)制自己的 release.keystore 到 TMessagesProj/config 文件夾內(nèi)
第二步
修改 gradle.properties 文件內(nèi)的 密碼相關(guān)變量值
第三步
修改 module級別 build.gradle
- 修改applicationId 為 xyz.jimbray.telegram
- 去除 buildType 里面的 applicationIdSuffix ".beta" 后綴
- 其他的沒有做改動
第四步
Firebase 新建 project笛粘,然后新建 Android application
包名我設(shè)置為 xyz.jimbray.telegram
與項(xiàng)目匹配
然后一步一步趁怔,按照 要求 完善 build.gradle 文件,基本上與原項(xiàng)目一致闰蛔,只看到少了一個 implementation
implementation 'com.google.firebase:firebase-core:16.0.9'
其他基本已經(jīng)有了
下載 google-services.json
放在 TMessagesProj根目錄
第五步
記得修改 local.properties 的 ndk.dir
嘗試編譯
出現(xiàn)問題:
GNUMAKE: Expected exactly one source file in compile step: com.android.build.gradle.external.gnumake.CommandClassifier$NativeCompilerBuildTool@55ee87d9
but received:
'-DVERSION=1.3.1'
解決方案:有效
Go to the Android.mk in exoplayer-flac/src/main/jni and change the
'-DVERSION="1.3.1"' 改為 -DVERSION="1.3.1"
Emmm... 就是去掉單引號痕钢。
繼續(xù)出現(xiàn)問題
Error while executing process D:\AndroidNDK\android-ndk-r16b-windows-x86_64\android-ndk-r16b\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null
...
android ndk make error 87...
解決方案:無效,依舊報(bào)錯 嘗試更新 gradle 版本 3.4.1 序六,而且我用的 AS3.4 gradle wrapper 已經(jīng)默認(rèn)為 5.1.1了
修改 project 級別的 build.gradle
解決方案:有效任连!
原因是.MK文件中包含的文件太多了,而windows對于函數(shù)參數(shù)個數(shù)有限制例诀,解決辦法:http://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
在Android.mk文件中添加:LOCAL_SHORT_COMMANDS := true
在Application.mk文件中添加:APP_SHORT_COMMANDS := true
編譯成功随抠。但是我明明修改了 applicationId ,但是還是要把原本的 Telegram 先卸載掉呢?
這個后面再查繁涂,先登錄看看拱她?
報(bào)錯: 程序提示
CONNECTION_API_ID_INVALID
噢,應(yīng)該是忘記 配置 telegram 的 api id了
按照 流程 配置好后
修改 org.telegram.messager/BuildVars.java文件填入對應(yīng)的
app_id app_hash 等相關(guān)信息
填寫到org.telegram.messager/BuildVars.java中扔罪,HOCKEY_APP_HASH和HOCKEY_APP_HASH_DEBUGE在代碼中的使用需要注釋掉秉沼,不想注釋的話,可以直接使用將app_bash填寫進(jìn)去矿酵。
或者填入字符串 (32為 “0”)
build 運(yùn)行成功唬复,登錄也可以了。nice全肮!
接下來就能調(diào)試學(xué)習(xí) Telegram 了
不過有幾個要求遵守:
- 你的應(yīng)用請不要使用 Telegram 這個名子敞咧,或者必須要讓你的用戶知道此應(yīng)用是非官方的
- 請不要使用標(biāo)準(zhǔn)logo(藍(lán)底白飛機(jī))作為你的應(yīng)用圖標(biāo)
- 請學(xué)習(xí) Telegram的 security guidelines 還有 要保護(hù)要你的用戶的數(shù)據(jù)和隱私
- 請記得發(fā)布你的代碼以遵循開源協(xié)議
已發(fā)布至 我說的這句話是謊話