Onde o Qt procura classes java ao usar JNI

Estou tentando usar JNI no Qt. Gostaria de saber onde devo colocar as classes java. Existem muitos posts sobre JNI na internet, mas eles assumem que você sabe onde colocar as classes e mostra apenas como chamar os métodos.

Eu achei que a variável: ANDROID_PACKAGE_SOURCE_DIR deve estar definida. Eu configurei essa variável, mas não funcionou.

Eu tenho uma pasta android na pasta raiz do projeto. Minha árvore de arquivos é algo como isto:

-root-project
    -android
        -app1
            -MyJavaClass.class
            -MyJavaClass.java

A classe possui este pacote:package app1;

No arquivo .pro, tentei o seguinte:

android{
    QT += androidextras
    ANDROID_PACKAGE_SOURCE_DIR=$_PRO_FILE_PWD_/android
}

e isto:

android{
    QT += androidextras
    ANDROID_PACKAGE_SOURCE_DIR=$PWD/android
}

Estou tentando usar a classe desta maneira:

int AccessLocalData::fibonacci(int n) {
    return QAndroidJniObject::callStaticMethod<jint>("app1/MyJavaClass", "fibonacci", "(I)I", n);
}

Os melhores posts que encontrei foram estes:

Usando Qt / C ++ para chamar código Java por meio do JNI. FindClass não encontra a classe

Como usar QAndroidJniObject para chamar código Java de dentro do Qt?

Ambos disseram usar ANDROID_PACKAGE_SOURCE_DIR, mas como isso não funcionou para mim, acho que preciso de uma explicação mais profunda de como tudo isso funciona.

O erro lançado é este:

W System.err: java.lang.ClassNotFoundException: Didn't find class "app1.MyJavaClass" on path: DexPathList[[],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
W System.err:   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W System.err:   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
W System.err:   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
W System.err:   Suppressed: java.lang.ClassNotFoundException: Didn't find class "app1.MyJavaClass" on path: DexPathList[[zip file "/data/app/org.qtproject.example.INF628-1/base.apk"],nativeLibraryDirectories=[/data/app/org.qtproject.example.INF628-1/lib/arm, /data/app/org.qtproject.example.INF628-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
W System.err:       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W System.err:       at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
W System.err:       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
W System.err:       ... 1 more
W System.err:       Suppressed: java.lang.ClassNotFoundException: app1.MyJavaClass
W System.err:           at java.lang.Class.classForName(Native Method)
W System.err:           at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
W System.err:           at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
W System.err:           at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
W System.err:           ... 2 more
W System.err:       Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

questionAnswers(1)

yourAnswerToTheQuestion