Это моя функция:Android NDK передавая длинных значения нативного метода
Long Java_my_package_MainActivity_getDistance(JNIEnv* env, jobject obj, Long a_id1,Long a_id2)
{
char temp[128];
sprintf(temp,"ID1: %u , ID2: %u",a_id1, a_id2);
__android_log_print(ANDROID_LOG_INFO, "From NDK : ", temp);
return(0);//just to test ...
}
Long типа Защита:
typedef long long Long;
, потому что у меня есть некоторые значения, которые терка, чем максимальное значение ИНТА тип
в моем Java класс:
static {
System.loadLibrary("module");
}
// declare the native code function - must match ndkfoo.c
private native int getDistance(long id1, long id2);
я называю родную функцию с этой линии:
getDistance(1234,2456);
выход в LogCat является:
ID1: 1234, ID2: 0
Я всегда получаю ID2 = 0 !!, я не знаю, почему второй параметр всегда оценивайте до 0!
Спасибо !! вы правы, он отлично работает с jlong! знак равно – user2340271