ПРОБЛЕМА
Мой код, который работает на Android, будучи скомпилированным на:
Qt 5.9.2 и
Qt 5.10.1,
не работает на Android, если компиляция была сделана на:
Qt 5.11.2
КОД
Я сделал код минимального примера: http://rgho.st/7t6YyyQdB
В нем используется немного измененный код пользователя EXL, взятый отсюда: https://github.com/EXLMOTODEV/QmlDestroyTest
То есть, код EXL нормально работает на всех Qt, включая Qt 5.11.
А мой код минимального примера работает на Qt 5.9 и Qt5.10, но не работает на Qt 5.11.
Поэтому на Qt 5.11 не грешу, грешу на свои кривые руки. Однако понять, почему так получается не могу.
ПОДРОБНОСТИ
В коде используется демонстрация вызовов по JNI. Проблемный код лежит в файле /android/src/ru/farwater/gnss/farwaterma/JniEventActivity.java и выглядит так:
@Override
public void onStart() {
Log.w(TAG, "onStart() called!");
NativeHelper.invokeVoidMethod(100);
super.onStart();
}
На Qt 5.9 и Qt 5.10 он отрабатывает, показывая такой лог:
W JniEventActivity: onStart() called!
E HAL : load: id=gralloc != hmi->id=gralloc
I OpenGLRenderer: Initialized EGL, version 1.4
I HwSecImmHelper: mSecurityInputMethodService is null
...
А на Qt 5.11 получается такая ошибка:
W JniEventActivity: onStart() called!
E art : No implementation found for
void ru.farwater.gnss.farwaterma.NativeHelper.invokeVoidMethod(int)
(tried Java_ru_farwater_gnss_farwaterma_NativeHelper_invokeVoidMethod
and
Java_ru_farwater_gnss_farwaterma_NativeHelper_invokeVoidMethod__I)
I Process : Sending signal. PID: 7227 SIG: 9
Где я накосяпорил?