Я пытаюсь вернуть значение сервису 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.