2016-12-29 36 views
1

我已經有一段時間將在Qt 5.1至5.5中工作的Android項目轉換爲v5.7。第一個主要問題是它甚至不會啓動應用程序,請參閱:Java executes but not C++ in Qt 5.7 for Android (worked in prior Qt)。我過去了,現在我有一個同樣可怕的問題。Qt 5.7 for Android主要C++線程不能連續運行

我的Java端QtActivity類調用到C++。 Qt C++發出一個信號。應該觸發的插槽位於主線程上(我確定它與C++交叉調用的執行方式不同)。那麼,那永遠不會發生。這就像主C++線程沒有運行。

我想進一步測試,所以我開始在主線程上創建一個對象的QTimer(0延遲),以便在沒有其他事件要處理時使它持續激發。它執行一次,證明它可能已連接,但不會再次連接。這就像C++主線程在運行一次後就進入睡眠狀態。

我想嘗試可能在另一個線程中運行相關的C++,但這太麻煩了。該程序具有可在多個平臺上運行的組件和類層次結構。一切工作,但Android(這又是隻有新的Qt打破)。我不能冒險打破其他平臺。我的一個主類是QWidget,它不能從定義的主線程移動。

任何人都可以至少指出我在哪裏可以找到他們之間更改版本之間的來源?它可能在Android QtApplication(Java)類的Qt中?

+0

據我所知所有的Qt版本帶有所有的變化都列出更新日誌文件。您也可以下載源文件並在頭文件或源文件上執行「diff」。不幸的是,遷移不是一件快速的工作,特別是當你想跳過這麼多的發佈時。 – Nulik

+0

謝謝,Nulik。我會尋找的。考慮到我跳過了一個單一的主要版本(從5.5到5.7),它不應該這麼難! – BuvinJ

+0

我在Qt站點找到了這個頁面:https://wiki.qt.io/Category:Release – BuvinJ

回答