1
環境:LinuxのOS、(私の場合使用12bは
アンドロイド5.xのオンの場合:私は、Mac OS)
のAndroid NDKを使用
System.loadLibrary("crypto");
System.loadLibrary("ssl");
同じ名前のネイティブOSのlibと競合します。そして不運にも、手動で名前を変更すると動作しませんでした。 libcryptox.soやlibsslx.soのような別の名前にコンパイルしたいのですが
私は一日中でもMakefile.orgを試してみたいと思います。だから誰かに教えてください。
ライブラリの名前を変更するだけではうまくいかない理由は、共有ライブラリには、 'SONAME'という名前のELFヘッダーに少しのメタデータが含まれているからです。 Android(少なくとも新しいバージョンでは、これがGBまで真実であるかどうかわかりません)、これは 'loadLibrary'に使用してください。 –
ラッパー共有オブジェクトを記述する必要があります。ラッパー共有オブジェクトは、必要な機能をエクスポートします。 ZoogoteによってロードされたOpenSSLの下位バージョンを取得しないように、OpenSSLにも静的にリンクしています。 [OpenSSLをバージョン管理されていない共有ライブラリとして構築する方法](http://stackoverflow.com/a/24212330/608639)と[HttpClient用のAndroidアプリケーションでOpenSSLライブラリを変更する方法](http://stackoverflow.com/a/28392326)も参照してください。/608639)。 – jww
OpenSSL wikiの[OpenSSL and Android](https://wiki.openssl.org/index.php/Android)も参照してください。 Androidドキュメントの[SSLエクスプロイトから保護するためのセキュリティプロバイダの更新](http://developer.android.com/training/articles/security-gms-provider.html)を参照してください。 – jww