Android JIN返回结构体

一、对应类型符号

Java 类型     符号 
boolean     Z 
byte     B 
char     C 
short     S 
int     I 
long     J 
float     F 
double     D 
void     V 

其中特别要注意 long类型对应的符号为J,而不是L!!!

二、部分错误分析

JNI遇到error: request for member 'FindClass' in something not a structure or union

  • 可能的问题是:

如果是c程序,要用 (*env)->
如果是C++要用 env->

  • 以下是两者的区别:

/*
* We use inlined functions for C++ so that programmers can write:
*
*   env->FindClass("java/lang/String")
*
* in C++ rather than:
*
*    (*env)->FindClass(env, "java/lang/String")
*
* in C.
*/

即C++中使用
env->FindClass("java/lang/String")
C中使用
(*env)->FindClass(env, "java/lang/String")

三、使用举例

  • 本地对应类

  • jni实现( .c  实现)

  • 前台打印结果

原文地址:https://www.cnblogs.com/zwj911112/p/4739586.html