On 23-11-2018 19:27, Dirk Hohndel wrote:

On Nov 23, 2018, at 6:34 AM, Jan Mulder <[email protected]> wrote:

A status update. After hours of rebuilding, NDK version changes etc. I managed 
to build Subsurface-Mobile for Android using the following components: OpenJDK 
10, Android NDK 18b, latest Android SDK, Qt 5.12 Beta 4, clang using LLVM 
libc++, both for arm and arm64 architectures.

Wow.

This build does not have the problem mentioned above (runOnAndroidThread 
undefined on link time), so the borders are working again. So, definitely, my 
first attempt described above was broken (highly likely related to mixup of GNU 
stl and libc++ headers).

Unfortunately, the runtime crash on device is still there, shown in the logcat 
as as follows:

Orgs.

11-23 13:09:16.180 10906 10906 E AndroidRuntime: 
java.lang.UnsatisfiedLinkError: No implementation found for void org.qtpr
oject.qt5.android.bluetooth.QtBluetoothBroadcastReceiver.jniOnReceive(long, 
android.content.Context, android.content.Inten
t) (tried 
Java_org_qtproject_qt5_android_bluetooth_QtBluetoothBroadcastReceiver_jniOnReceive
 and Java_org_qtproject_qt5_an
droid_bluetooth_QtBluetoothBroadcastReceiver_jniOnReceive__JLandroid_content_Context_2Landroid_content_Intent_2)
11-23 13:09:16.180 10906 10906 E AndroidRuntime:        at 
org.qtproject.qt5.android.bluetooth.QtBluetoothBroadcastReceive
r.jniOnReceive(Native Method)

This crash can be triggered at will, by simply switching BT on/off, and 
unfortunately, that missing code is also triggered on a regular BT/BLE 
download, making the app more or less useless for any BT/BLE use at this point.

Not good. From the looks of it this does sound like it might be a Qt issue, so 
I'm adding Alex...

Something I overlooked. I was testing all the time with builds for arm64 architecture, and there I can reproduce this non-implemented jniOnReceive issue at will. However, testing for arm, all just works. That's definitely a clue, and I can definitely not rule out an issue in my build stack. The good news is that we can build a working arm version.


I did review numerous recent Qt changes in the related qtconnectivity and 
qtbluetooth on source code level (not building Qt from source, only code 
reading). Nothing I found sticks out as suspicious, and nothing to really 
substantiate a Qt bug. So, basically I'm on a dead end at this point, and I can 
better go cave diving the coming days :-)

Be save diving.
Do you have pointers on how to re-create your build? Any patches needed? 
Specific versions?

Will push things to my github asap, but first need to do some cleanup. Notice that Qt 5.12 is not yet downloadable (as not yet released), and all my work is currently local build only. No Travis integration yet.


--jan
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to