использовать нативную строку без установленного статического в Java - PullRequest
0 голосов
/ 07 февраля 2019

Здравствуйте, у меня есть проблема,

Я использую c ++ в студии Android внутри Java

Это мой код cpp:

#include <jni.h>

extern "C" {

JNIEXPORT jstring JNICALL

Java_ir_test_test_Utils_testData_getfromJNI(JNIEnv *env, jobject /* this */) {
    return env->NewStringUTF("123456");
     }
}

И java-код:

public class testData {

 static {
        System.loadLibrary("native-lib");
    }

    private native String getfromJNI();

    public static String get_value(String value){

        String e_string = getfromJNI();
        return e_string + value;
    }
}

В этом коде я по какой-то причине вынужден использовать общедоступную статическую строку, я получаю сообщение об ошибке, что делает «get_value» не статическим или делает getfromJNI статическим.

Я должен использовать get_value со статическим.если я установлю getfromJNI в static, эта строка будет отображать ошибку в файле cpp:

(JNIEnv *env, jobject /* this */)

Error Image Пожалуйста, проверьте его

Как я могу ее решить?

...