Android NDKとJavaのデータ型対応表

Javaで扱うデータの型は、native側では「jni.h」によって以下のように定義されている。

Java C++ 解説
boolean jboolean

unsigned 8 bits

#define JNI_FALSE   0

#define JNI_TRUE    1

byte jbyte signed 8 bits
char jchar unsigned 16 bits
short jshort signed 16 bits
int jint signed 32 bits
long jlong signed 64 bits
float jfloat 32-bit IEEE 754
double jdouble 64-bit IEEE 754
java.lang.Object jobject オブジェクト
java.lang.String jstring 文字列
  jarray 配列のベース
Object[] jobjectArray 配列
boolean[] jbooleanArray 配列
byte[] jbyteArray 配列
char[] jcharArray 配列
short[] jshortArray 配列
int[]

jintArray

配列
long[]

jlongArray

配列
float[]

jfloatArray

配列
double[]

jdoubleArray

配列
java.lang.Thowable

jthrowable

例外クラス


その他、Javaのフィールドやメソッドを識別する為のIDとして、以下ようにポインタ型が定義されている。

Java C++ 解説
             jfieldID フィールドを識別するポインタ
  jmethodID メソッドを 識別するポインタ