但是当我在ndk文件夹中写入cmd中的ndk-build时
喜欢:
F:\ndk\android-ndk-r10>ndk-build -C F:\Workspace\Android\Telegram-master-1-12-2016\Telegram-master\TMessagesProj\jni
当我添加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,…) Failedmake (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)