Ben Android ile OpenSSL'yi hakkında birkaç tavsiyede bulunacağım: ndk araçlarını kullanarak OpenSSL kütüphanelerini oluşturmak için gerekli olan
, aksi takdirde NDK ile uyumsuz olacaktır. Compiling the latest OpenSSL for Android
CC=~/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc
./Configure android-armv7
export ANDROID_DEV=~/android-ndk-r9//platforms/android-8/arch-arm/usr
make build_libs
OpenSSL kaynak dizininde çalıştırılacaktır yönetiyor olması beklenir. Bu kütüphaneleri (ssl ve kripto) ndk'den kendi kütüphaneniz ile kullanmak için jni klasöründe ek * .mk dosyaları oluşturmanız gerekir. Örneğin:
include $(CLEAR_VARS)
LOCAL_MODULE := ssl-crypto
LOCAL_SRC_FILES := openssl-crypto/libcrypto.so
include $(PREBUILT_SHARED_LIBRARY)
ve ana Android.mk içine şunlardır: muhtemelen
include $(LOCAL_PATH)/openssl-ssl/Android.mk
ve hataları önlemek için, ondan sonra
include $(CLEAR_VARS)
ekleyin. Kütüphaneler libs/armabi
ve .apk
'a yerleştirilecektir.
could not load library ... needed by ...
hatasıyla karşılaşırsanız, büyük olasılıkla kitaplığınızın bir sürüm numarası olan soname içerdiği anlamına gelir. AFAIK ndk şu anda bu tür kütüphanelerle çalışamıyor. Bir geçici çözüm (Dalvik is looking for .so file with '.0' extension - why?) vardır: rpl
bir linux string değiştirme aracıdır
rpl -R -e library.so.1.1 "library.so\x00\x00\x00\x00" libs obj
. Oluşturduktan sonra ve uygulamanızı çalıştırmadan önce bu betiği çalıştırın ve proje dosyalarından sürüm numarasını kaldıracaktır. Daha fazla bilgi görmek için bağlantıyı takip edin.
Bir C++ derleyici kullanırsanız, C işlevlerinizde "tanımsız başvurular" hatası alabilirsiniz. Bunu önlemek için extern "C" {}
kullanın (daha fazla bilgi için bkz. "C++ ad mangling").
Son olarak, bildirime ağ kullanma iznini dahil etmeyi unutmayın.
biz aslında şimdi bu bizim kendi versiyonunu korumak: https://github.com/guardianproject/android-ffmpeg –
Biz guardianproject sağlanan openssl yapı kullanıyoruz .. ben şimdi yükseltmek için çalışıyorum Bir son Android playstore güvenlik uyarısı nedeniyle openssl sürümü. Benioku dosyasında adımları izledim ama şu noktada takılıyorum: 5) Binadan önce temizleme: m -j16 clean-libcrypto clean-libssl clean-openssl clean-ssltest.Benim bilgi için benim bilgi m ve mm android kaynak oluşturmak için kurulum yaparken, böylece m: komut bulunamadı ve mm için sonraki adımda olsun. Herhangi bir yardım büyük beğeni topluyor! – Nonos
@Nonos OpenSSL sürümünü güncellemek için herhangi bir çözüm buldunuz mu? Ayrıca 5. adımda kaldım. Eğer bana yardım edebilecek olursanız, herte [soru] (http://stackoverflow.com/questions/36493508/how-to-update-openssl-version-in-csipsimple). –