Ho bisogno di creare l'ultimo OpenSSL (1.0.0g) per un'applicazione Android. Sto cercando di seguire l'esempio dato da https://github.com/fries/android-external-openssl, ma non riesco a farlo costruire.Impossibile creare una libreria OpenSSL esterna per Android NDK su Windows/Cygwin
Sto eseguendo Windows 7 Professional (64-bit) con un Cygwin completo e recente. Ho installato Android SDK e NDK e posso creare ed eseguire correttamente l'applicazione di esempio ciao-jni di NDK.
Ho creato una nuova app NDK di esempio chiamata hello-openssl. Nella sua directory jni, ho creato una directory openssl. Lì, ho scompattato https://github.com/fries/android-external-openssl/zipball/master, che mi ha dato questa struttura ad albero sotto c: \ samples \ android-NDK \ android \ ciao-openssl:
jni
+- openssl
+- apps
+- crypto
+- include
+- openssl
+- ssl
Ho poi modificato il file Android.mk nel JNI directory nel tentativo di includere i file di OpenSSL:
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
openssl \
))
include $(subdirs)
Ora, quando eseguo NDK-build, compila diversi file .c, ma poi non riesce rapidamente:
Compile thumb : crypto <= cryptlib.c
In file included from jni/openssl/crypto/cryptlib.c:117:
jni/openssl/crypto/cryptlib.h:65:18: error: e_os.h: No such file or directory
jni/openssl/crypto/cryptlib.h:72:28: error: openssl/crypto.h: No such file or directory
Ho trovato http://osdir.com/ml/android-ndk/2010-07/msg00424.html, che mi dice di "aggiungere jni e jni/include al LOCAL_C_INCLUDES" sopra in crypto/Android.mk, ma non riesco a capire la sintassi che dovrei usare per ottenere questo.
Inoltre non riesco a capire di avere la struttura di directory corretta.
Apprezzo sinceramente qualsiasi aiuto che possa essere offerto.
Grazie!
Ciao, sto cercando di fare la stessa cosa che avete fatto, io ho usato openssl-androide, ho creato i sorgenti e ho ottenuto i miei file .so ma ho riscontrato problemi durante l'utilizzo nel mio progetto, ho scritto file .c usando queste librerie, l'ho messo nella mia cartella jni e ho scritto un file Android.mk che diceva che uso anche altri 2 condivisi librerie, tutto si compila bene ma si blocca in runtime con un UnsatisfiedLinkError, sarebbe bello se potessimo parlare. – onizukaek