我正在尝试编译电报源代码中的 jni 文件夹github.com/DrKLO/Telegram/ http://github.com/DrKLO/Telegram/与NDK
但是当我在 ndk 文件夹中的 cmd 中编写 ndk-build 时
喜欢:
F:\ndk\android-ndk-r10>ndk-build -C F:\Workspace\Android\Telegram-master-1-12-2016\Telegram-master\TMessagesProj\jni
我收到一些错误并且未创建 libs 文件夹
当我将 ndk 路径添加到 android studio 并手动添加 jni 文件夹时,android studio 说找不到一些头文件
按照此question https://stackoverflow.com/questions/33765946/android-telegram-app-java-lang-unsatisfiedlinkerror-no-implementation-found下载Cygwin https://www.cygwin.com/并使用它,但再次出现此错误,如 ndk-build
$ndkbuild
[armeabi] 共享库:libtmessages.15.so
process_begin: CreateProcess(........,
F:/ndk/android-ndk-r10/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi
/thumb/libgnustl_static.a -lgcc -无规范前缀
-Wl,--无未定义 -Wl,-z ,noexecstack -Wl,-z,relro -Wl,-z,now
-LF:/ndk/android-ndk-r10/platforms/android-
9/arch-arm/usr/lib -ljnigraphics -llog -lz -ldl -lc -lm -o
F:/工作区/Android/
Telegram-master-1-12-2016/Telegram-master/TMessagesProj//obj/local/armeabi/libtm
essages.15.so,...)失败
make (e=87): 参数不正确。
make.exe: *** [F:/Workspace/Android/Telegram-master-1-12-2016/Telegram-master/TMessagesProj//obj/local/armeabi/libtmessages.15.so] 错误 87
如何解决这个问题?
重要更新问题:
在 3.18 版本中,下载 telegram 源项目后,如果您转到 jni 文件夹,您会发现一个名为 libtgvoip 的空文件夹,用所需文件填充它:
1-从 githum 转到 telegram 源,转到 jni 文件夹,然后单击 libtgvoip @ eb813e1 文件夹(@ 表示这是一个引用文件夹)。
2-也下载该库!
3-将其内容复制到前面讨论的空文件夹中!
现在让我们开始:
这很容易。
1-将 NDK 目录添加到环境 PATH 变量中。
2-打开 Android.mk 并添加以下行:
LOCAL_SHORT_COMMANDS := true
3-打开Application.mk并添加以下行:
APP_SHORT_COMMANDS := 真
4-以管理员身份打开命令提示符并导航到 jni 文件夹,如下所示:
(重要提示:在最新版本的 telegram 中,您应该导航到 jni 父文件夹而不是 jni 文件夹)
5-只需执行ndk-build命令
然后 ndk 将开始构建 .so 文件:
等到它完成任务,也许会显示一些警告,但并不重要。最后,您将在 obj 目录中拥有所有共享库(.so 文件):
(重要:在最新版本的 telegram 中,.so 文件将在 lib 文件夹中创建,并且一切都已准备好构建)
然后转到每个文件夹并删除除 libtmessages.22.so 之外的所有内容。
创建一个 libs 文件夹并将这三个目录复制到其中:
建造并享受乐趣! (请记住使用您的应用程序 ID 和 app_hash 填写 org.telegram.messenger.BuildVars 类中的变量。在这里阅读更多内容 https://github.com/DrKLO/Telegram)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)