Доступ к классу Rect из Native - PullRequest
0 голосов
/ 13 июня 2011

Я пытаюсь использовать NDK.Предположим, у меня есть этот фрагмент Java для вызова нативной функции:

private native void changerect(Rect);

Rect r=new Rect();

r.set(10,10,100,100);

changerect(Rect r);

Затем нативная функция:

void changerect(JNIEnv *env, jobect this, jobject r)
{
 jclass rectClass=(*env)->GetObjectClass(env,r);
 jfieldID jid=(*env)->GetFieldID(env,rectClass,"left","I");
 jint l=(*env)->GetIntField(env,rectClass,fid);
 //now, change the left value
 l+=20;
 (*env)->SetIntField(env,rectClass,fid,l);
}

Это компилируется нормально, но затем я получаю исключение, говорящее, что полеоставленный не является частью класса?

Помогите, кто-нибудь?

1 Ответ

0 голосов
/ 15 июня 2011

Вы должны передать объект Rect (в вашем случае 'r') в функции Get / SetIntField, т.е.

jint l=(*env)->GetIntField(env,r,fid);
(*env)->SetIntField(env,r,fid,l);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...