java 方法中的参数字符串,调用java方法包含字符串作为参数和字符串作为返回类型从c++在android中的ndk...

我在java中有一个以下方法:

public native String jniStringMethod();

public String stringMethod(String s) {

Log.d("Testing", "String:" + s);

return s;

}我试图用以下方式在cpp文件中的jniStringMethod()中调用“stringMethod”方法:

jstring Java_ashok_learning_ndk_SampleNDKActivity_jniStringMethod(JNIEnv *env,

jobject obj) {

jstring jstr = env->NewStringUTF("This comes from jni string .");

//jclass clazz = env->GetObjectClass(obj);

jclass clazz = env->FindClass("ashok/learning/ndk/SampleNDKActivity");

if (0 == clazz) {

LOG("clazz class not found!");

}

jmethodID messageMe = env->GetMethodID(clazz, "stringMethod", "(Ljava/lang/String;)Ljava/lang/String;");

if (0 == messageMe) {

LOG("messageMe method not found!");

}

jobject result = env->CallObjectMethod(obj, messageMe, jstr);

LOG("result: %d", result);

const char* str = env->GetStringUTFChars((jstring)result, NULL); // should be released but what a heck, it's a tutorial :)

printf("%s\n", str);

return env->NewStringUTF(str);

}但它没有被调用..我得到日志作为“messageMe方法未找到!”,意味着方法不符合签名...任何人都可以建议我的错误?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值