在eclipse上编译和使用OpenSSL for Android

我正在使用eclipseWindows上开发一个Android应用程序。 我想为我的Android应用程序使用OpenSSL。 它需要通过NDK与C ++一起使用。 我尝试从https://github.com/fries/android-external-openssl下载fries的OpenSSL源代码并构build它。 我读了README.android文件,但我不明白这些说明是什么。 除了薯条的源代码之外,还需要下载OpenSSL源代码吗? 我已经尝试把所有来自Fries的文件放到Android项目的jni文件夹中。 它抱怨没有finde_os.h和openssl / crypto.h和其他类似的东西。 进一步来说:

In file included from D:/Projects/Fatal/Android/OpenSSL/jni/ssl/s2_meth.c:59: D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:124:18: error: e_os.h: No such file or directory D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:126:28: error: openssl/buffer.h: No such file or directory D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:127:26: error: openssl/comp.h: No such file or directory 

我不知道为什么它没有find这些文件,我试图将所有types的path添加到各种Android.mk文件LOCAL_C_INCLUDES,但没有任何工作。

我想知道如何构buildAndroid的OpenSSL。 谢谢。

Solutions Collecting From Web of "在eclipse上编译和使用OpenSSL for Android"

我知道这是旧的,但是当我正在寻找这个问题的时候,我一直在碰到这个问题。 如果你正在建立一个独立的OpenSSL去与你的项目,并得到这个错误,我发现这个线程的解决方案:

openssl-android/cryptoopenssl-android/sslopenssl-android/apps ,你会发现local_c_includes的变量声明是这样的:

 local_c_includes := \ $(NDK_PROJECT_PATH) \ $(NDK_PROJECT_PATH)/crypto/asn1 \ $(NDK_PROJECT_PATH)/crypto/evp \ $(NDK_PROJECT_PATH)/include \ $(NDK_PROJECT_PATH)/include/openssl 

如果你已经把你的openssl-android目录放在project/jni目录下的Android项目中,那么这些变量不再指向正确的位置。 我解决它的方式是修改这些路径相对于LOCAL_PATH

 local_c_includes := \ $(LOCAL_PATH)/.. \ $(LOCAL_PATH)/asn1 \ $(LOCAL_PATH)/evp \ $(LOCAL_PATH)/../include \ $(LOCAL_PATH)/../include/openssl 

请记住,您必须为您要构建的每个目录( cryptosslapps )执行此操作。

我意识到炸薯条的github只是补丁OpenSSL的来源,它不是一个独立的Android的OpenSSL。 这是必需的,因为它提供了ndk-ndk所需的Android.mk文件。 你不想使用标准的gcc来构建它,因为你想为Android构建它。