несоответствие между сигнатурой метода и фактическим вызовом

При использовании собственного интерфейса Java на Android я сделал две глупые ошибки, которые стоили мне много времени.

Имея этот идентификатор метода:

jmethodID myMethod_methodID = env->GetMethodID(hello_Cls, "myMethod", "(ILjava/lang/String;Ljava/lang/String;I)Z");

Моя первая ошибка заключалась в вызове его с использованием

env->CallVoidMethod

, а вторая ошибка заключалась в том, что он называл его так

jboolean rv = jenv->CallBooleanMethod(hello_obj, myMethod_methodID, myfirst_jstring, mysecond_jstring, 1);

, в котором явно отсутствовал аргумент jint между myMethod_methodID и myfirst_jstring .

Мне потребовалось много времени, чтобы отследить эти ошибки, потому что в logcat не было соответствующего вывода, и единственное поведение - ничего не делать (даже не аварийно).

Итак, вопрос: Как мне получить более значимые ошибки для такого рода ошибок?

6
задан João Portela 21 April 2011 в 11:40
поделиться