這是我的函數:的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 ...
}
龍是一種類型定義:
typedef long long Long;
因爲我有一些值是磨碎機比爲int的最大值在我的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 2013-05-02 20:04:32