android studio3.6.2編譯 Telegram客戶端6.0.1(1911)版本

2020-04-02,當前版本是1911

  1. 獲取代碼
git clone -- recursive https://github.com/DrKLO/Telegram.git

或者

git clone  https://github.com/DrKLO/Telegram.git
git submodule update --init --recursive

其實我在ubuntu18.04 下編譯沒有遇到什麼太大問題,無非是需要把JRE環境變量設置好。而WINDOWS下涉及很多問題。
主要是buildtools裏的dx.bat文件錯誤,還有文件名太長造成NDK編譯失敗。

2 .dx問題
執行MAKE的時候
需要打開buildtoos,遇到無法打開dx文件,

* What went wrong:
Execution failed for task ':TMessagesProj:assembleAfatDebugTgVoipDex'.
> A problem occurred starting process 'command 'D:\androidsdk/build-tools/29.0.3/dx''

需要將更改build.gradle文件

// 添加.bat後綴
def dxUtilPath = "${sdkDirectory.path}/build-tools/${buildToolsVersion}/dx.bat"
// 將運行命令更改爲通過CMD調用批處理
commandLine(["cmd", "/c", dxUtilPath, "--dex", "--output=${tgVoipDexFile}"] + classes)

找到dx.bat文件,將set java_exe 改爲自己的JAVA_EXE所在路徑

set java_exe="C:\AS36\jre\jre\bin\java.exe"

否則無法啓動執行。

3 編譯JNI文件步驟報錯。
手動編譯:需要配置好ndk環境變量。在PATH中添加配置好ndk路徑D:\androidsdk\ndk\20.0.5594570
再進入到\TMessagesProj文件夾下面,以管理員權限打開cmd,執行

ndk-build

可能會遇到很多錯誤,
更改幾個MK文件:

jni/Application.mk
jni/android.mk
jni/libtgvoip/android.mk
jni/libtgvoip/android2.mk

都在首行添加
LOCAL_SHORT_COMMANDS := true

以便防止文件太多,造成命令失敗。
完成後在\TMessagesProj\lib下多出幾個文件夾,每個文件裏有4個so文件。
自動編譯:在build.gradle執行死後遇到很多錯誤,主要是也是同樣的原因,可以通過添加命令來解決問題。
4.至此,可以 生成了APK文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章