|
对于一个非Android 开发者来说,遇到几个问题,从网上找了些资料,大概汇总下
- Windows 10
- JDK1.8
- NDK 21.1.6352462
- SDK 29
- BuildTools 29.0.3
- Android Studio 4.0
GIT地址:https://github.com/DrKLO/Telegram.git
按照GITHUB上面的步骤,大概有以下几个:
- Download the Telegram source code from https://github.com/DrKLO/Telegram ( git clone https://github.com/DrKLO/Telegram.git )
- Copy your release.keystore into TMessagesProj/config,这一步怎么生成,网上很多文章,可以参考 Android Studio签名打包的两种方式,生成文件后重命名为release.keystore并放到TMessagesProj/config这个目录下
- Fill out RELEASE_KEY_PASSWORD, RELEASE_KEY_ALIAS, RELEASE_STORE_PASSWORD in gradle.properties to access your release.keystore,在gradle.properties配置文件中配置这几个键,值为上一步生成的对应的值
- Go to https://console.firebase.google.com/, create two android apps with application IDs org.telegram.messenger and org.telegram.messenger.beta, turn on firebase messaging and download google-services.json, which should be copied to the same folder as TMessagesProj. 在Firebase上创建两个应用分别为org.telegram.messenger和org.telegram.messenger.beta,这两个值可以自己定义,不一定用这两个,创建之后,用org.telegram.messenger生成的google-services.json放到TMessagesProj目录下
- Fill out values in TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java – there’s a link for each of the variables showing where and which data to obtain. 在这个类里面修改APP_ID以及APP_HASH两个值,这两个值需要从这里注册(https://my.telegram.org/apps)网站打不开需要科学上网。
- 最后编译运行,下面是我遇到编译的时候出的问题,可以先大概过下,编译的是时候注意把build.gradle中的熟悉buildTypes的HA,release先注释掉,不然后面编译需要很久,我们先只编译debug的看看,另外需要注释掉这段代码applicationIdSuffix ".beta"
下面是我遇到的几个报错点
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':TMessagesProj:assembleAfatDebugTgVoipDex'.
> A problem occurred starting process 'command 'C:\Users\Taylor\AppData\Local\Android\Sdk/build-tools/29.0.3/dx''
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2m 8s
16 actionable tasks: 16 executed
修改,这行代码最后少了一个.bat,这个构建脚本感觉是针对linux上面写的
def dxUtilPath = "${sdkDirectory.path}/build-tools/${buildToolsVersion}/dx.bat"
FAILURE: Build failed with an exception.
* Where:
Build file 'F:\Telegram\TMessagesProj\build.gradle' line: 354
* What went wrong:
Execution failed for task ':TMessagesProj:assembleAfatDebugTgVoipDex'.
> Process 'command 'E:\Program Files\Java\jdk1.8.0_152\jre\bin\javac'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 13s
16 actionable tasks: 2 executed, 14 up-to-date
修改,在build.gradle找到方法findJavaHome(),修改如下:
private static File findJavaHome() {
//String javaPath = System.getProperty("java.home") //原代码
String javaPath = "E:\\Program Files\\Java\\jdk1.8.0_152" //修改后代码
if (javaPath != null) {
File javaBase = new File(javaPath)
if (javaBase.exists()) {
if (javaBase.getName().equalsIgnoreCase("jre") && new File(javaBase.getParentFile(), "bin/java").exists()) {
return javaBase.getParentFile()
} else {
return javaBase
}
} else {
return null
}
} else {
return null
}
}
- 报错3(编译JNI的时候要保证电脑配置高呀,不然卡死,我的电脑配置16G内存,编译的时候CPU一直是100%,内存达到10G以上)
后面基本上是JNI的编译错误了,从网上看到的文章是项目路径不能太长,我之前试过把项目放到好几个层级下,编译JNI确实失败了,后面我直接把项目放到E:\\Telegram下面了
另外以下几个文件都在文件的首行添加代码:LOCAL_SHORT_COMMANDS := true
TMessagesProj/jni/libtgvoip3/Android.mk
TMessagesProj/jni/libtgvoip/Android.mk
TMessagesProj/jni/Android.mk
TMessagesProj/jni/Application.mk
编译是个漫长的过程,请耐心等待,最后编译通过(感觉编译了有一个多小时......),
大家可以发评论多交流交流 |