質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2329閲覧

qt でのSSLのエラーについて

kokawa2003

総合スコア217

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2019/04/09 11:26

編集2019/04/09 16:03

QtでHTTPSにアクセスするAPPをANDROIDで動作させようとしています。
幸いLINUXでは動作しました。
そこでANDROIDで動作させようとしましたが
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
みたいなエラーがでました。
そこでこれについて調べると
まず
https://doc.qt.io/qt-5/android-openssl-support.html
これが必要らしいのでコンパイルしてつくりQTのプロジェクトにセットしました。
で実行しましたが同じエラーが出ました。
それについて調べていますが、どうも実機には
/data/app/jp.co.novius.newapp-1/lib/arm/libcrypto.so
/data/app/jp.co.novius.newapp-1/lib/arm/libssl.so
の両ファイルがあるが実行時のログを見る限りLINKされてないらしい。
ログはこんな感じ

log

1I QtCore : Start 2W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Network.so: unsupported flags DT_FLAGS_1=0x81 3W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81 4W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Gui.so: unsupported flags DT_FLAGS_1=0x81 5W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81 6W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Widgets.so: unsupported flags DT_FLAGS_1=0x81 7W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5AndroidExtras.so: unsupported flags DT_FLAGS_1=0x81 8W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5QuickParticles.so: unsupported flags DT_FLAGS_1=0x81 9W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5WebView.so: unsupported flags DT_FLAGS_1=0x81 10W linker : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5RemoteObjects.so: unsupported flags DT_FLAGS_1=0x81 11W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unsupported flags DT_FLAGS_1=0x81 12I Qt : qt started 13W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unsupported flags DT_FLAGS_1=0x81 14W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/webview/libqtwebview_android.so: unsupported flags DT_FLAGS_1=0x81 15I art : Do partial code cache collection, code=20KB, data=31KB 16I art : After code cache collection, code=20KB, data=31KB 17I art : Increasing code cache capacity to 128KB 18I art : Compiler allocated 4MB to compile org.json.JSONObject org.qtproject.qt5.android.ExtractStyle.extractTextAppearanceInformations(java.lang.String, java.lang.String, android.util.AttributeSet, int) 19I art : Enter while loop. 20I art : Do partial code cache collection, code=39KB, data=62KB 21I art : After code cache collection, code=39KB, data=62KB 22I art : Increasing code cache capacity to 256KB 23I art : Enter while loop. 24I art : Enter while loop. 25I art : Enter while loop. 26V PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = null, this = DecorView@1a710fb[] 27D WindowClient: Add to mViews: DecorView@1a710fb[CustomQtActivity], this = android.view.WindowManagerGlobal@a546bb3 28D OpenGLRenderer: Dumper init 2 threads <0xd746da80> 29D OpenGLRenderer: <jp.co.novius.newapp> is running. 30D OpenGLRenderer: CanvasContext() 0xe78f8800 31D ViewRootImpl[CustomQtActivity]: hardware acceleration is enabled, this = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0} 32V PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0}, this = DecorView@1a710fb[CustomQtActivity] 33D Surface : Surface::allocateBuffers(this=0xd7429000) 34D OpenGLRenderer: CanvasContext() 0xe78f8800 initialize window=0xd7429000, title=jp.co.novius.newapp/qt.android.java.CustomQtActivity 35I OpenGLRenderer: Initialized EGL, version 1.4 36D OpenGLRenderer: Swap behavior 1 37D OpenGLRenderer: Created EGL context (0xef4efb80) 38D OpenGLRenderer: ProgramCache.init: enable enhancement 1 39I OpenGLRenderer: Get disable program binary service property (0) 40I OpenGLRenderer: Initializing program atlas... 41I ProgramBinary/Service: ProgramBinaryService client side disable debugging. 42I ProgramBinary/Service: ProgramBinaryService client side disable binary content debugging. 43D ProgramBinary/Service: BpProgramBinaryService.getReady 44D ProgramBinary/Service: BpProgramBinaryService.getProgramBinaryData 45I OpenGLRenderer: Program binary detail: Binary length is 182828, program map length is 124. 46I OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 55, and path is /dev/ashmem. 47I OpenGLRenderer: No need to use file discriptor anymore, close fd(55). 48D OpenGLRenderer: Initializing program cache from 0x0, size = -1 49D Surface : Surface::connect(this=0xd7429000,api=1) 50W libEGL : [ANDROID_RECORDABLE] format: 1 51D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000 52D : (null):0 ((null)): QML debugging is enabled. Only use this in a safe environment. 53D OpenGLRenderer: ProgramCache.generateProgram: 1099511627784 54D GraphicBuffer: register, handle(0xd7278600) (w:720 h:1184 s:720 f:0x1 u:0x000b00) 55D OpenGLRenderer: ProgramCache.generateProgram: 1 56D OpenGLRenderer: ProgramCache.generateProgram: 0 57D GraphicBuffer: register, handle(0xd7278780) (w:720 h:1184 s:720 f:0x1 u:0x000b00) 58V PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0}, this = DecorView@1a710fb[CustomQtActivity] 59W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/styles/libqandroidstyle.so: unsupported flags DT_FLAGS_1=0x81 60V InputMethodManager: onWindowFocus: null softInputMode=288 first=true flags=#1810100 61W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so: unsupported flags DT_FLAGS_1=0x81 62W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so: unsupported flags DT_FLAGS_1=0x81 63W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.so: unsupported flags DT_FLAGS_1=0x81 64W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so: unsupported flags DT_FLAGS_1=0x81 65W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtWebView/libdeclarative_webview.so: unsupported flags DT_FLAGS_1=0x81 66W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so: unsupported flags DT_FLAGS_1=0x81 67W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.so: unsupported flags DT_FLAGS_1=0x81 68W linker : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Controls/Styles/Android/libqtquickcontrolsandroidstyleplugin.so: unsupported flags DT_FLAGS_1=0x81 69W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks 70W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback 71W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback 72W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings 73W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup 74W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init 75W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_new_null 76W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_push 77W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_free 78W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_num 79

この linker :ってところに多分
/data/app/jp.co.novius.newapp-1/lib/arm/libcrypto.so
/data/app/jp.co.novius.newapp-1/lib/arm/libssl.so
がないとだめなんだとと思いますが、なぜ実行時よまれないのでしょうか?
*.proに設定を追加すれば良いのだろうが何を追加スべきか分かりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fu7mu4

2019/04/09 15:08

HTTPSはSSHとは異なりますので、タイトルを 「qt でのHTTPSのエラーについて」または「qt でのSSLのエラーについて」に変更してはどうでしょうか?
kokawa2003

2019/04/09 16:03

書き間違えました
kokawa2003

2019/04/09 16:09

ありがとうございます
guest

回答1

0

自己解決

解決しました。
https://github.com/orangefour/android-openssl
についているバイナリをそのままパクってつかうとOK
具体的にいうと上記プロジェクトをDLして自分のプロジェクトに入れ
*.proに
include(android-openssl/android-openssl.pri)
を追記

投稿2019/04/10 01:51

kokawa2003

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問