0

SDKNDK、をインストールしJDKました。ターミナルに入力すると:

moroz@moroz:~/qt/qt5$ ./configure -developer-build -opensource -confirm-license -xplatform android-g++ -nomake tests -nomake examples -android-ndk android-ndk-r9/ -android-sdk android-sdk-linux/ -android-ndk-host linux-x86_64 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples

それで

moroz@moroz:~/qt/qt5$ /home/moroz/qt/qt5/qtbase/configure -top-level -developer-build -opensource -confirm-license -xplatform android-g++ -nomake tests -nomake examples -android-ndk android-ndk-r9/ -android-sdk android-sdk-linux/ -android-ndk-host linux-x86_64 -android-toolchain-version 4.8 -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples

次のエラーが発生しました:

Can not detect Android NDK toolchain. Please use -android-toolchain-version to specify

Mac と Ubuntu で同じメッセージが表示されます。

4

4 に答える 4

1

使用する必要があるMacで

-android-ndk-host darwin-x86_64

ndkfolder/prebuilt/ の -android-ndk-host を解決します (私は darwin-x86_x64、android-arm、android-mips、android-x86、common を持っています)

于 2013-09-24T17:07:05.597 に答える
0

私の場合、ndkへの相対パスを指定しました-フルパスを提供した後、同じエラーが発生しました。

于 2015-11-20T12:03:42.177 に答える
0
  • Android 5.0 以前では、QSslSocket は Android システムの libssl.so と libcrypto.ssl を使用します。
  • Android >= 6.0 では、アプリに独自の libssl.so と libcrypto.ssl を含める必要があります
  • OpenSSL は、一部の国での法的制限により、Qt インストールの一部ではありません。
  • アプリケーションが利用可能な地域の法的制限に基づいて、SSL 機能の有効化/無効化を検討する必要があります。
  • 構成可能な機能の詳細については、SSL 構成オプションを参照してください。
  • インターネット上にあるビルド済みの OpenSSL ライブラリは使用しないでください。

1) macOS で OpenSSL を構築する方法:

macOSホストを使用して arm、arm-v7a、および x86 用の OpenSSL Android ライブラリをビルドするには、Android NDK r10eを使用すると、このスクリプトがうまく機能します。

** ライブラリを Qt アプリのプロジェクト フォルダーにコピーします: **

プラットホーム/
└──アンドロイド
    └──リブ
        └──openssl
            ├──README.md
            ├── android-openssl-vsts.webloc
            ├── arch-armeabi-v7a
            │ ├── libcrypto.a
            │ ├── libcrypto.so
            │ ├── libssl.a
            │ └── libssl.so
            └──アーチ×86
                ├── libcrypto.a
                ├── libcrypto.so
                ├──libssl.a
                └──libssl.so

2) Qt yourapp.pro プロジェクト ファイルに次を追加します。

アンドロイド {
    # Android >= 6.0 では、アプリが独自の libcrypto.so および libssl.so をインストールする必要があります
    # https://subsite.visualstudio.com/DefaultCollection/android-openssl
    equals(ANDROID_TARGET_ARCH, armeabi-v7a) {
        ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-armeabi-v7a/*.so)
    }
    equals(ANDROID_TARGET_ARCH, x86) {
        ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-x86/*.so)
    }
}

そのスクリプトを見つけるまで、Linux と macOS で OpenSLL をビルドしようとして多くの時間を無駄にし、Android NDK r10e 以前でビルドする必要があることがわかりました。

Qtの Android 向け OpenSSL サポートの追加ガイドがうまくいきませんでした。ただし、 NDK r10e に戻した場合は機能する可能性があります。

これで誰かの時間を節約できることを願っています。

于 2018-07-20T21:30:05.173 に答える