Метод Java-сервиса Android всегда возвращает одно и то же значение в сервис Qt Android - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь вернуть значение сервису Qt из кода сервиса java.Java всегда возвращает начальное значение для переменной.Однако когда я запускаю тот же код в основной деятельности Qt, он работает.

Код в Java-классе BackService:

public static int SAYK = 0;

public static void callNorm(int valSy) {
    BackService.SAYK = valSy;
    System.out.println("Result= "+BackService.SAYK);
}

public static int retStt() {
    return BackService.SAYK;
}

Код C ++ в Qt Service:

int jobj = QAndroidJniObject::callStaticMethod<jint>("org/qtproject/example_v2/BackService",
                                                     "retStt",
                                                     "()I");

Когда я вызываю функцию "callNorm" из Java, система выводит новое значение SAYK.Но когда я вызываю «retStt» из службы Qt, он возвращает только начальное значение 0. Я пробовал также с callStaticObjectMethod, getStaticField, нативными функциями Java (дает ошибку неудовлетворительной связи) и т. Д. К сожалению, ни одна из них не сработала.Также я могу без проблем вызывать Java-функции, которые не возвращают значение из Qt Service.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...