android - 为 Qt for Android 目标构建 SMTP 客户端

标签 android c++ qt email shared-libraries

我正在使用 SMTP Client项目以在 Windows 上创建库文件 (.dll)。一切正常,电子邮件发送成功。

我想将我的 Qt 项目移植到 Android,由于 Android 是一种不同的架构,我需要使用 Android armv7 工具包构建库。

我试过了,但是我得到了错误:

Internal Error: Unknown Android deployment JSON file location. Error while building/deploying project SMTPEmail (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.4.2)) When executing step "Build Android APK"

我怀疑我必须从项目文件中添加/删除某些内容。我看到有一个“win32:CONFIG += dll”,但其他平台没有类似的东西。

.pro 文件如下所示:

#-------------------------------------------------
#
# Project created by QtCreator 2011-08-11T20:59:25
#
#-------------------------------------------------

QT       += core network

TARGET = SMTPEmail

# Build as an application
#TEMPLATE = app

# Build as a library
TEMPLATE = lib
DEFINES += SMTP_BUILD
win32:CONFIG += dll

QMAKE_CXXFLAGS += -fPIC

SOURCES += \
    src/emailaddress.cpp \
    src/mimeattachment.cpp \
    src/mimefile.cpp \
    src/mimehtml.cpp \
    src/mimeinlinefile.cpp \
    src/mimemessage.cpp \
    src/mimepart.cpp \
    src/mimetext.cpp \
    src/smtpclient.cpp \
    src/quotedprintable.cpp \
    src/mimemultipart.cpp \
    src/mimecontentformatter.cpp \

HEADERS  += \
    src/emailaddress.h \
    src/mimeattachment.h \
    src/mimefile.h \
    src/mimehtml.h \
    src/mimeinlinefile.h \
    src/mimemessage.h \
    src/mimepart.h \
    src/mimetext.h \
    src/smtpclient.h \
    src/SmtpMime \
    src/quotedprintable.h \
    src/mimemultipart.h \
    src/mimecontentformatter.h \
    src/smtpexports.h

OTHER_FILES += \
    LICENSE \
    README.md

FORMS +=

最佳答案

如 OP 中所述,我遇到了同样的问题,只需向我的项目添加一个应用程序即可解决。

我的原始项目是一个针对库 (tinyxml) 的简单 .pro 文件。使用 Qt 5.2.1(Qt Creator 3.0.1),我能够为 Android 编译库(创建一个 .so 文件)。使用 Qt 5.5.0(Qt Creator 3.4.0)时,我收到了与 OP 中报告的相同的错误消息。

这是我的解决方案:

我创建了另一个针对虚拟程序的 .pro 文件:

mockup_app.pro:

TARGET = mockup_app
SOURCES += main.cpp
TEMPLATE = app

ma​​in.cpp:

// actually never compiled
int main()
{
    return 0;
}

toplevel.pro:

TEMPLATE = subdirs
SUBDIRS += tinyxml.pro
SUBDIRS += mockup_app.pro

然后,打开 toplevel.pro。转到“项目”选项卡,选择“运行”,然后选择“mockup_app”作为“运行配置”。

现在,您可以右键单击库项目并选择“编译”:将创建 .so 文件。

看起来问题是“运行配置”(早期的 QtCreator 版本中没有)需要选择一个应用程序....如果没有,则选择一个库,然后编译甚至不会开始。

编辑 07-20-2015:这是一个 Qt 错误,我填写了错误报告:https://bugreports.qt.io/browse/QTCREATORBUG-14710它是固定的。 QtCreator 的下一个版本应该没问题。

关于android - 为 Qt for Android 目标构建 SMTP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133873/

相关文章:

c++ - 如何从对象 std::tuple<Head,Tail...> 获取对元组尾部的引用

c++ - 如何在 QtCreator 中将控制台模式更改为 gui 模式?

java - super 用户和移动文件

android - Android 中的音频编辑

android - 谷歌移动视觉文本 API 示例

c++ - 在 C++ 中使用指针按引用传递数组

java - Android:如何从 JSON 获取某些值

c++ - 如何读取视频的亮度和对比度?

c++ - QT多线程和更新GUI

c++ - 如何在 iOS 上的 QT/QML 中使用剪贴板