2 csh 34 csh_34 于 2013.05.09 17:42 提问

jni如何传递一个字符串数组?

如何传递一个字符串数组?
xx.cpp

JNIEXPORT jstring JNICALL Hello_Native(JNIEnv *env, jobject obj,jstring string)
{
    const char *str = env->GetStringUTFChars(string, 0);
    return env->NewStringUTF( "Hello from JNI !");
}
static JNINativeMethod gMethods[] = {
   {"JniHello",const_cast<char*>("(Ljava/lang/jsting)Ljava/lang/jsting;"),(void*)Hello_Native}

xx.java

public native static String JniHello(String text);

为什么系统总是提醒当在 gMethods 中申明 JniHello 时,参数不正确。

1个回答

baimy1985
baimy1985   2013.05.09 21:17
已采纳

字符串数组是这么表示吧 jobjectArray,可看你的代码明明是string
在源码里找了一个,难道是少了个分号?

 private static native String native_get(String key);
static JNINativeMethod method_table[] = {  
{ "native_get", "(Ljava/lang/String;)Ljava/lang/String;",
     (void*) SystemProperties_getS },
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!