0

我刚刚安装了SDK, NDK, JDK. 当我输入终端时:

莫罗兹@莫罗兹:~/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

然后

莫罗兹@莫罗兹:~/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

i7有问题。它显示处理器架构为 i386(32 位),但硬件为 x84_64(64 位)。

$ uname -p
i386

$ uname -m
x86_64

-m 打印机器硬件名称。

-p 打印机器处理器架构名称。

必须破解 qtbase/configure 文件才能返回 x86_64

 macx-g++-64)
            PLATFORM=macx-g++
            NATIVE_64_ARCH=
            case `uname -p` in
            i386) NATIVE_64_ARCH="x86_64" ;;
            powerpc) NATIVE_64_ARCH="ppc64" ;;
            *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
            esac
            if [ ! -z "$NATIVE_64_ARCH" ]; then
                QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
            fi
            ;;
        esac

另一种解决方案是下载 32 位 Android NDK 并使用 darwin-x86 作为主机名。

于 2014-04-06T08:29:33.907 回答
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 配置选项
  • 不要使用您在 Internet 上发现的预构建 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
            └── arch-x86
                ├── 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
    等于(ANDROID_TARGET_ARCH,armeabi-v7a){
        ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-armeabi-v7a/*.so)
    }
    等于(ANDROID_TARGET_ARCH,x86){
        ANDROID_EXTRA_LIBS += $$files($${PWD}/platform/android/lib/openssl/arch-x86/*.so)
    }
}

我浪费了很多时间试图在 Linux 和 macOS 上构建 OpenSLL,直到我找到了那个脚本,并发现我需要使用 Android NDK r10e 或更早版本进行构建。

Qt添加 OpenSSL Support for Android指南对我不起作用。但是,如果我恢复到 NDK r10e ,它可能会起作用。

我希望这可以节省一些时间。

于 2018-07-20T21:30:05.173 回答