android - QT 和 Android 8.0 : Error creating SSL context () 问题

标签 android c++ qt http ssl

Android 8.0 发布后,我们的 QT 应用程序无法在使用此新版本的设备上正常运行。我们在模拟器中看到的错误是“Error creating SSL context ()”。该应用程序运行正常,但当它尝试进行 HTTP 调用时失败。

我们的 AndroidManifest 中有这一行:

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23"/>

我有时尝试更改此 targetSdkVersion,但没有任何效果。

此外,我们使用此函数进行 HTTP 调用

void UrlLoader::load()
{
    this->setProperty("loading", true);
    QNetworkRequest request;
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setUrl(m_url);

    QUrlQuery postData;

    if(params() != "") {
        QStringList pieces = params().split( "&" );
        foreach(QString value, pieces) {
            QStringList values = value.split( "=" );
            postData.addQueryItem(values[0], values[1]);
        }
    }

    m_netMan->post(request, postData.toString(QUrl::FullyEncoded).toUtf8());
}

当我们尝试读取结果时显示错误:

void UrlLoader::finished(QNetworkReply *reply)
{
    this->setProperty("loading", false);
    QJsonArray jsonArray;
    QJsonObject json;
    int error = reply->error();

    if(error == 0){
        QByteArray rawData = reply->readAll();
        if(QJsonDocument::fromJson(rawData).isArray()) {
            jsonArray = QJsonDocument::fromJson(rawData).array();
            emit this->loadedArray(jsonArray);
        } else {
            json = QJsonDocument::fromJson(rawData).object();
            if(json.empty()){
                this->setResponse(rawData);
            }
            emit this->loaded(json);
        }
        reply->abort ();
    } else {
        emit this -> crashed(this -> retornaError(error)) ;
    }
}

有人可以帮助我们吗? 最好的问候。

最佳答案

也许您对私有(private) SSL native 库的使用不再与 Android 目标 API 级别兼容。查看Qt doc ,以及 Android doc , NDK Apps Linking to Platform Libraries 部分。

关于android - QT 和 Android 8.0 : Error creating SSL context () 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462879/

相关文章:

android - 我需要 "Android unlocked dev phone"来测试我的 android 项目吗?

android - Xamarin.Android 中的 rootView 高度和宽度

c++ - 可能丢失在 pthread_create 的丢失记录中

c++ - Collision c++ 2d 游戏,防止玩家进入瓷砖

c++ - 来自数据库的 QT ComboBox ItemData

android - 不能在 ListFragment 上使用 SimpleAdapter

java - 将 ID 保存到资源文件时出现问题

c++ - 在 C++ 中获取数据类型字节数的安全方法

qt - 如何在键盘上仅显示带有 qt 的数字

qt - 如何禁用小部件的突出显示?