Передача переменной int из Java в C

#java #android #c #android-ndk #native

#java #Android #c #android-ndk #родной

Вопрос:

У меня есть два кода Java: public native void savex(int x); C:

 void Java_com_example_javatest_MainActivity_savex(jint x)
{
    FILE *fp;
    fp = fopen("/data/data/com.example.javatest/data.txt", "w");
    fprintf(fp, "%dn", (int)x);
    fclose(fp);
}
 

При запуске результат всегда имеет -1265282592 в data.txt .
В чем здесь проблема?

Комментарии:

1. Вам нужно предоставить более подробную информацию о коде, который вызывает функцию C, Об исходном значении переменной Java и т. Д., Иначе будет сложно помочь.

Ответ №1:

аннулирование Java_com_example_javatest_MainActivity_savex Java_com_example_javatest_MainActivity_savex(jint x)

Аргументы функции должны быть:

 void Java_com_example_javatest_MainActivity_savex(JNIEnv* env, jobject obj,jint x)