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

解決


ミロ  2018-05-29 14:46:56  No: 49192

「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-30 05:24:37  No: 49193

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-06-01 00:52:02  No: 49194

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-02 05:51:04  No: 49195

>通りすがりさん
| 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-04 05:27:38  No: 49196

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


ミロ  2018-06-07 23:03:17  No: 49197

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

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


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加