我正在尝试使用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文件夹
当我向Android工作室添加ndk路径并手动添加jni文件夹时android工作室说找不到一些头文件
按照question下载Cygwin并使用它,但再次出现此错误,如ndk-build
$ndkbuild
[armeabi] SharedLibrary:libtmessages.15.so
process_begin:CreateProcess(........,
F:/ NDK /机器人-NDK-R10 /源/ CXX-STL / GNU-的libstdc ++ / 4.8 /库/ armeabi /thumb/libgnustl_static.a -lgcc -no-canonical-prefixes -Wl, - no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -LF:/ NDK / Android的NDK-R10 /平台/ android- 9 / arch-arm / usr / lib -ljnigraphics -llog -lz -ldl -lc -lm -o F:/工作区/安卓/ 电报主-2016年1月12日/电报主/ TMessagesProj // OBJ /本地/ 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 < / p>
如何解决这个问题?
答案 0 :(得分:14)
重要更新问题: 在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
以管理员身份打开命令提示符并导航到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)
答案 1 :(得分:1)
答案 2 :(得分:0)
下载android-ndk然后转到Project目录(./TMessagesProj)并执行ndk-build。 然后重新运行将本机库打包到apk中的gradle构建。