Здесь есть две неправильные вещи:
1.) Неверная подпись сообщения, которую вы передаете в C ++.Это должно быть:
"(Landroid/content/Context;)Ljava/lang/String;"
Помните ;
в конце каждого имени класса!Это всегда L<classname>;
!Кроме того, вы всегда должны точно соответствовать методу, как объявлено в Java.Несколько параметров не должны быть разделены.Например, если у вас есть метод void test(int a, int b)
, подпись будет (II)V
.
2.) Метод, который вы вызываете, является объектным методом, что означает, что вы должны использовать QAndroidJniObject::callStaticObjectMethod
* 1014.*
Этот метод возвращает вам QAndroidJniObject
, и вы можете вызвать QAndroidJniObject::toString()
, чтобы преобразовать результат в строку.