2017-08-05 10 views
0

誰かがエラーを解決する方法を知っていますか?私は問題が解決されたようだhttps://i.stack.imgur.com/bOWKZ.png][1]タイプ 'jobject'(別名 '_jobject *')のrvalueを持つタイプ 'jstring'(別名 '_jstring *')の変数を初期化できません

[エラーがキャスティングをしていないから来ることができますが、私はそれを非常に明確に

を持っていないことを理解し

JNIEXPORT jstring JNICALL JAVA_com_pfc_camera_ndkmain_MainActivity_compresion(JNIEnv* env, jobject obj, jobjectArray jargv){ 



//jargv is a Java array of Java strings 
    int argc = env->GetArrayLength(jargv); 
    typedef char *pchar; 
    pchar *argv = new pchar[argc]; 
    int i; 
    for(i=0; i<argc; i++) 
    { 
     jstring js = env->GetObjectArrayElement(jargv, i); //A Java string 
     const char *pjc = env->GetStringUTFChars(js); //A pointer to a Java-managed char buffer 
     size_t jslen = strlen(pjc); 
     argv[i] = new char[jslen+1]; //Extra char for the terminating null 
     strcpy(argv[i], pjc); //Copy to *our* buffer. We could omit that, but IMHO this is cleaner. Also, const correctness. 
     env->ReleaseStringUTFChars(js, pjc); 
    } 

    //Call main 
    Principal *pa=Principal::CreateInstance(argc,argv); 
    pa->Run(); 
    pa->FreeInstance(); 

    //Now free the array 
    for(i=0;i<argc;i++) 
     delete [] argv[i]; 
    delete [] argv; 

}

今は別のエラーが出ますが、2つの引数jsとpjcを渡しているのか分かりません

[https://i.stack.imgur.com/UHCAR.png][1]

+0

は、あなたは私の例を与えることができますか?ありがとうございます – Gigasnike95

答えて

1

C++では、必要な型に明示的に変換する必要があります。

jstring js = (jstring)env->GetObjectArrayElement(jargv, i); 

あなたはあなたの他の質問については、JNIのプログラミングについてhere

を学ぶことができます次の操作を行います

const jbyte *pjc = env->GetStringUTFChars(js, NULL); 
+0

問題が解決したようですが、別のエラーが出ますが、2つの引数jsとpjcを渡しているかどうかわかりません – Gigasnike95

関連する問題