android – 如何编译电报jni文件夹

我正在尝试使用ndk编译 github.com/DrKLO/Telegram/中的电报源代码中的jni文件

但是当我在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工作室并手动添加jni文件夹android studio说找不到一些头文件

按照question下载Cygwin并使用它,但再次得到像ndk-build这样的错误

$ndkbuild

[armeabi] SharedLibrary : 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 -no-canonical-prefixes
-Wl,–no-undefined -Wl,-z,noexecstack -Wl,relro -Wl,Now
-LF:/ndk/android-ndk-r10/platforms/android-
9/arch-arm/usr/lib -ljnigraphics -llog -lz -ldl -lc -lm -o
F:/Workspace/Android/
Telegram-master-1-12-2016/Telegram-master/TMessagesProj//obj/local/armeabi/libtm
essages.15.so,…) Failed

make (e=87): The parameter is incorrect.

make.exe: *** [F:/Workspace/Android/Telegram-master-1-12-2016/Telegram-master/TMessagesProj//obj/local/armeabi/libtmessages.15.so] Error 87

如何修复这个?

解决方法

重要更新问题:
在3.18版本中,下载电报源项目后,如果你去jni文件夹,你会发现并清空名为libtgvoip的文件夹,用所需的文件填充它:
1-从githum转到电报源,转到jni文件夹并单击libtgvoip @ eb813e1文件夹(@表示这是一个refrence文件夹).
2-也下载该库!
3-将其内容复制到前面讨论的空文件夹中!

现在开始吧:
它很容易.

1-将NDK目录添加到环境PATH变量.

2-打开Android.mk并添加以下行:
LOCAL_SHORT_COMMANDS:= true

3-打开Application.mk并添加以下行:
APP_SHORT_COMMANDS:= true

4-管理员打开命令提示符并导航到jni文件夹,如下所示:
(重要的是:在最后一个版本的电报中你应该导航到jni父文件夹而不是jni文件夹)

5-只执行ndk-build命令

然后ndk将开始构建.so文件

等到它完成任务,可能会显示一些警告但不重要.最后,您将在obj目录中拥有所有共享库(.so文件):
(重要的是:在最后一个版本的电报.so文件将在lib文件夹中创建,一切都准备好了)

然后转到每个文件夹并删除除libtmessages.22.so之外的所有内容.
创建一个libs文件夹并将三个目录复制到其中:

建立并享受乐趣! (记得用你的app id和app_hash填写org.telegram.messenger.BuildVars类中的变量.read more here)

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...