在 Android 上编译 OpenSSL

Compiling OpenSSL on Android

我目前正在尝试让我的 Cocos2D-X 项目通过 SSL 连接到我的服务器,我让它在 iOS 上运行没有很多问题,但是在 Android 我什至无法让 OpenSSL 编译。我在 Google 上搜索了很多,但所有帖子都将我重定向到 HTTPS 相关帖子(这不是,我不是在此处以任何形式或形式使用 HTTP,纯 OpenSSL),在 Java 中发布有关如何使用标准 Android SDK 执行此操作的帖子或根本没有帮助的帖子。

有人可以告诉我如何编译这个游戏的 Android 版本并让它连接到我的服务器吗?

您遇到了一个问题。每个 Android OS 都有 libssl 和 libcrypto 库,它们是 OpenSSL 的一部分。但是它们不包含在 NDK 中以供使用。因此,您可以通过从 phone 复制 *so 文件来稍微修改您的 NDK。

$adb pull /system/lib/libssl.so /myndk/platforms/android-14/arch-arm/usr/lib

$adb pull /system/lib/libcrypto.so /myndk/platforms/android-14/arch-arm/usr/lib

其中 /myndk 是您的 NDK 路径,android-14 - 您当前的平台

同时将 *.h 文件从 openssl 源复制到 /myndk/platforms/android-14/arch-arm/usr/include 文件夹。 还要将下一个文件添加到此文件夹 - openssl/opensslconf.h(您可以在互联网上找到它或从源 openssl 配置) 这些文件仅在编译时需要。编译后,您的应用程序将从 phone.

获取库

也不要忘记在 jni/Application.mk 文件中为 APP_LDFLAGS 部分添加 -lssl -lcrypto 选项

APP_LDFLAGS := -latomic -lssl -lcrypto