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

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

ただいまの
回答率

87.60%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,153

score 183

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されてないらしい。
ログはこんな感じ

I QtCore  : Start
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Network.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Gui.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5Widgets.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5AndroidExtras.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5QuickParticles.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5WebView.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/jp.co.novius.newapp-1/lib/arm/libQt5RemoteObjects.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unsupported flags DT_FLAGS_1=0x81
I Qt      : qt started
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/webview/libqtwebview_android.so: unsupported flags DT_FLAGS_1=0x81
I art     : Do partial code cache collection, code=20KB, data=31KB
I art     : After code cache collection, code=20KB, data=31KB
I art     : Increasing code cache capacity to 128KB
I 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)
I art     : Enter while loop.
I art     : Do partial code cache collection, code=39KB, data=62KB
I art     : After code cache collection, code=39KB, data=62KB
I art     : Increasing code cache capacity to 256KB
I art     : Enter while loop.
I art     : Enter while loop.
I art     : Enter while loop.
V PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = null, this = DecorView@1a710fb[]
D WindowClient: Add to mViews: DecorView@1a710fb[CustomQtActivity], this = android.view.WindowManagerGlobal@a546bb3
D OpenGLRenderer: Dumper init 2 threads <0xd746da80>
D OpenGLRenderer: <jp.co.novius.newapp> is running.
D OpenGLRenderer: CanvasContext() 0xe78f8800
D ViewRootImpl[CustomQtActivity]: hardware acceleration is enabled, this = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0}
V PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0}, this = DecorView@1a710fb[CustomQtActivity]
D Surface : Surface::allocateBuffers(this=0xd7429000)
D OpenGLRenderer: CanvasContext() 0xe78f8800 initialize window=0xd7429000, title=jp.co.novius.newapp/qt.android.java.CustomQtActivity
I OpenGLRenderer: Initialized EGL, version 1.4
D OpenGLRenderer: Swap behavior 1
D OpenGLRenderer: Created EGL context (0xef4efb80)
D OpenGLRenderer: ProgramCache.init: enable enhancement 1
I OpenGLRenderer: Get disable program binary service property (0)
I OpenGLRenderer: Initializing program atlas...
I ProgramBinary/Service: ProgramBinaryService client side disable debugging.
I ProgramBinary/Service: ProgramBinaryService client side disable binary content debugging.
D ProgramBinary/Service: BpProgramBinaryService.getReady
D ProgramBinary/Service: BpProgramBinaryService.getProgramBinaryData
I OpenGLRenderer: Program binary detail: Binary length is 182828, program map length is 124.
I OpenGLRenderer: Succeeded to mmap program binaries. File descriptor is 55, and path is /dev/ashmem.
I OpenGLRenderer: No need to use file discriptor anymore, close fd(55).
D OpenGLRenderer: Initializing program cache from 0x0, size = -1
D Surface : Surface::connect(this=0xd7429000,api=1)
W libEGL  : [ANDROID_RECORDABLE] format: 1
D mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000
D         : (null):0 ((null)): QML debugging is enabled. Only use this in a safe environment.
D OpenGLRenderer: ProgramCache.generateProgram: 1099511627784
D GraphicBuffer: register, handle(0xd7278600) (w:720 h:1184 s:720 f:0x1 u:0x000b00)
D OpenGLRenderer: ProgramCache.generateProgram: 1
D OpenGLRenderer: ProgramCache.generateProgram: 0
D GraphicBuffer: register, handle(0xd7278780) (w:720 h:1184 s:720 f:0x1 u:0x000b00)
V PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = ViewRoot{e349570 jp.co.novius.newapp/qt.android.java.CustomQtActivity,ident = 0}, this = DecorView@1a710fb[CustomQtActivity]
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/plugins/styles/libqandroidstyle.so: unsupported flags DT_FLAGS_1=0x81
V InputMethodManager: onWindowFocus: null softInputMode=288 first=true flags=#1810100
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtGraphicalEffects/libqtgraphicaleffectsplugin.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtWebView/libdeclarative_webview.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtGraphicalEffects/private/libqtgraphicaleffectsprivate.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/data/jp.co.novius.newapp/qt-reserved-files/qml/QtQuick/Controls/Styles/Android/libqtquickcontrolsandroidstyleplugin.so: unsupported flags DT_FLAGS_1=0x81
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_new_null
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_push
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_free
W libHttpRequest.so: (null):0 ((null)): qt.network.ssl: QSslSocket: cannot resolve sk_num

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fu7mu4

    2019/04/10 00:08

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

    キャンセル

  • kokawa2003

    2019/04/10 01:03

    書き間違えました

    キャンセル

  • kokawa2003

    2019/04/10 01:09

    ありがとうございます

    キャンセル

回答 1

check解決した方法

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る