SSLライブラリが読み込めません、のエラーを修正するには?

解決


ミロ  2018-05-29 05:46:56  No: 49192  IP: [192.*.*.*]

「androidとiOSスマホ内にテキストファイルを作成するには?」にて質問させていただいた者です。
https://www.petitmonte.com/bbs/answers?question_id=8844
おかげさまで、1)androidスマホ内にテキストファイルを作成し、2)その内容をメールで送信する機能をandroidのSH-04gというスマホには実装することができました。
できた際は、小躍りして喜びました。ありがとうございます。

ところが、androidのSH-01kというスマホに同じアプリを入れて実行すると、メールを送信するボタンをタップした際に、上記の「SSLライブラリが読み込めません。」のエラーが出てしまいます。

メール送信のためのコードは以下を参考にさせていただきました。
Indy 10 を使って GMail を送受信するには? (Delphi 2009 以降) 
https://ht-deko.com/tech040.html#tech076

ちなみに、リンク先の「また、POP3/SMTP に SSL を利用する場合には、"Indy用 OpenSSL DLL" が別途必要となります。アーカイブを解凍して得られる DLL をプロジェクトフォルダ以下に配置して下さい。」を参考に、エラーが出たSH-01kには、以下の3つをアプリのファイルフォルダに入れております。
AndroidOpenssl1.0.1t.zip
AndroidOpenssl1.0.2h.zip
OpenSSL 1.0.2g Android.zip

エラーが出なかったSH-04gには入れておりません。
ここからどのように修正したらいいのか、アドバイスをよろしくお願いいたします。

編集 削除
ミロ  2018-05-29 20:24:37  No: 49193  IP: [192.*.*.*]

android 6以降は、OpenSSLをサポートしなくなった、という記事を見つけました。
https://stackoverflow.com/questions/37105600/error-could-not-load-ssl-library-on-android-with-tidhttp

このことと関係があるのでしょうか?
たしかにエラーが出なかったsh-04gはandroid 5でエラーが出たsh-01kはandroid 7ですので、無関係ではなさそうです。

編集 削除
通りすがり  2018-05-31 15:52:02  No: 49194  IP: [192.*.*.*]

OpenSSL 1.0.2hで解決済っぽいので、上記のSOの回答の、

| Update: the Android binaries for OpenSSL 1.0.2g are now available in the Embarcadero Attachments forum:
https://forums.embarcadero.com/thread.jspa?threadID=211147
| Then, to load OpenSSL instead of BoringSSL, follow these steps:
| 1.Add the 2 .so files to your project deployment and set them to deploy to the .\assets\internal\ folder
| 2.add the System.StartupCopy unit as the first unit in your DPR's uses clause.
| 3.call IdOpenSSLSetLibPath(TPath.GetDocumentsPath) at app startup.

で解決しませんか?(既に試していたらすいません)

編集 削除
ミロ  2018-06-01 20:51:04  No: 49195  IP: [192.*.*.*]

>通りすがりさん
| Update: the Android binaries for OpenSSL 1.0.2g are now available in the Embarcadero Attachments forum: 
|https://forums.embarcadero.com/thread.jspa?threadID=211147 
| Then, to load OpenSSL instead of BoringSSL, follow these steps: 
| 1.Add the 2 .so files to your project deployment and set them to deploy to the .\assets\internal\ folder 
| 2.add the System.StartupCopy unit as the first unit in your DPR's uses clause. 
| 3.call IdOpenSSLSetLibPath(TPath.GetDocumentsPath) at app startup. 
で解決しませんか?(既に試していたらすいません) 

気にかけていただきありがとうございます。
実は1.でつまずいています。
2つの.soをアプリのフォルダにコピーはできました。
ただdeploy(配置)マネージャーでリモートパスの「\」が自分のPCでは「\」で表示されています。
ここからどこようにしていいのか分からず、2つの.soファイルが認識されません。
そのためにエラーは相変わらずです。

Macbook airにparallels11を入れてwindows10を動かしています。
その上でDelphi XE10.2を使っています。

ところで、貼っていただいたリンクが開けないのは、スマホからだからでしょうか?

編集 削除
ミロ  2018-06-03 20:27:38  No: 49196  IP: [192.*.*.*]

>ただdeploy(配置)マネージャーでリモートパスの「\」が自分のPCでは「\」で表示されています。 
2つ目のバックスラッシュは半角円マーク(\)の間違いです。
意味不明な文章で申し訳ありませんでした。

編集 削除
ミロ  2018-06-07 14:03:17  No: 49197  IP: [192.*.*.*]

通りすがりさん
おかげさまで、解決できました。
PCに2つの.soファイルを入れて、参照したら良かったようです。
ありがとうございます。

追伸
このサイトでは円マークはバックスラッシュになってしまうのですね。

編集 削除