Qt 5.7 for Android主C ++线程不能连续运行

时间:2016-12-29 21:13:39

标签: android c++ multithreading qt

我有一段时间将在Qt 5.1到5.5中运行的Android项目转换为v5.7。第一个主要问题是它甚至无法启动应用程序,请参阅:Java executes but not C++ in Qt 5.7 for Android (worked in prior Qt)。我过去了,现在我有一个同样可怕的问题。

我的Java端QtActivity类调用C ++。 Qt C ++发出信号。应该触发的插槽位于主线程上(我已经确定它与C ++交叉调用执行的线程不同)。好吧,那永远不会开火。这就像主C ++线程没有运行。

我想进一步测试,所以我在主线程上构造一个对象时启动了一个QTimer(延迟为0),以便在没有其他事件需要处理时连续触发。它执行一次,证明它可能连接,但后来再也没有。这就像C ++主线程在运行一次后才进入休眠状态。

我想尝试在另一个线程中运行我的相关C ++,但这太麻烦了。该程序具有在众多平台上运行的组件和类层次结构。一切都有效,但Android(再次被新的Qt打破)。我无法冒险打破其他平台。我的一个主要类也是QWidget,根据定义,它不能从主线程移动。

任何人都可以至少指出我可以找到他们在不同版本之间更改的来源吗?它可能在Qt for Android QtApplication(Java)类中?

1 个答案:

答案 0 :(得分:0)

这是我解决的另一个症状"在Java executes but not C++ in Qt 5.7 for Android (worked in prior Qt)

原因是尝试使用Java端QtActivity类调用setContentView()

Qt的官方回答是他们不会支持!

如果我找不到Qt的帮助,我会在这里发布...