我有以下情况:基于Qt Widgets的应用程序,它是在后台运行控制台应用程序的接口。它在Windows和Linux上运行良好,现在我正在为Android编译它。我使用NDK(android-NDK-R10b)编译了控制台应用程序(用C编写)。为了编译接口,我使用了qt-opensource-windows-x86-android-5.3.0。我尝试将控制台应用程序包含在主应用程序的资产中,并在应用程序的第一个开头使用此代码复制它以运行文件夹:
QFile file;
file.setFileName("assets:/ConsoleApp");
if (!QFile::exists("./ConsoleApp"))
{
if (File.Copy("./ConsoleApp"))
qDebug () << "File copied";
else
qDebug () << "File not copied";
}
else
qDebug () << "The file already exists";
然后使用QProcess运行它。该文件已被很好地复制,但尝试运行它会返回QProcess :: FailedToStart错误。
我尝试使用Android Terminal Emulator从内部存储上的文件夹运行它并且它不运行。然后我尝试从SD卡运行它,它从终端仿真器和Qt应用程序完美地工作。
这个解决方案对我没有帮助,我需要从内部存储中的某个地方用Qt运行它,因为并非所有设备都有SD卡。我怎么能解决这个问题?
PD:对于mi English中的任何错误,我们深表歉意。