Qt 5.12 and Android arm64 build

Jan Mulder jlmulder at xs4all.nl
Thu Nov 15 12:58:42 PST 2018


On 15-11-2018 10:38, Jan Mulder wrote:
> On 15-11-2018 01:51, Thiago Macieira wrote:
>> On Wednesday, 14 November 2018 13:28:04 PST Jan Mulder wrote:
>>> One weird thing I could not solve up to now is an undefined reference 
>>> from
>>> the linker (QtAndroid::runOnAndroidThread); a construct to set the color
>>> of the header and footer to our liking.
>>
>> That sounds like a mix of two Qt versions, since runOnAndroidThread is 
>> defined
>> in qjnihelpers.cpp, inside QtCore, without any #if. That is, you're 
>> compiling
>> against 5.12, but linking (or running) against 5.11. Check your 
>> environment.
> 
> Did check, and do not find any reference to 5.11 in the build logs, have 
> no Qt related environment variables, moved my 5.11 tree away and did a 
> full rebuild, and the mobile app is telling in the log: build with 
> 5.12.0, runtime from 5.12.0. So, while I would like to believe that 
> there is something wrong in my environment, I have hard time pinpointing 
> it.
> 
> This said, I just found something that seems related. Interfacing using 
> Bluetooth using the mobile app crashes. Logcat shows:  AndroidRuntime: 
> java.lang.UnsatisfiedLinkError: No implementation found for void 
> org.qtproject.qt5.android.bluetooth.QtBluetoot
> hBroadcastReceiver.jniOnReceive. So also here, a link time error. 
> Obviously, the big question is here: is this an error in the Subsurface 
> build process, or is there something missing in Qt 5.12 (as I believe I 
> use 5.12, and do not mix up versions). I can not be missing QtCore as 
> the app would not run in any way.

Let me answer my own question. I made a small android app from one of 
the Qt examples. Embedded the runOnAndroidThread() call, and that 
compiles and runs as expected. Ok, a fully different build environment 
(qmake, clang) but it just works. So its a problem in our build process 
and not an Qt issue.

--jan



More information about the subsurface mailing list