将 int 变量从 Java 传递给 C

Passing int variable from Java to C

我有这两个代码 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, "%d\n", (int)x);
    fclose(fp);
}

当 运行 时,结果总是 data.txt 中的 -1265282592。 这里有什么问题?

void Java_com_example_javatest_MainActivity_savex(jint x)

函数参数必须是:

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