日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android+jni+构造函数,在JNI中调用构造函数失败Android

發布時間:2025/3/20 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android+jni+构造函数,在JNI中调用构造函数失败Android 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想從我的JNI Android代碼調用構造函數;但不知何故,它失敗,以下例外.. 我相信我失去了一些非常小的東西;但我無法弄清楚......任何人都可以請指出?在JNI中調用構造函數失敗Android

02-14 16:56:56.689: W/dalvikvm(397): JNI WARNING: JNI method called with exception raised

02-14 16:56:56.710: W/dalvikvm(397): in Lpv/ndk/Employee;.createWithAge (I)Lpv/ndk/Employee; (GetMethodID)

02-14 16:56:56.710: W/dalvikvm(397): Pending exception is:

02-14 16:56:56.710: I/dalvikvm(397): Ljava/lang/NoClassDefFoundError;: pv.ndk.Employee;

02-14 16:56:56.723: I/dalvikvm(397): at pv.ndk.Employee.createWithAge(Native Method)

02-14 16:56:56.740: I/dalvikvm(397): Caused by:

02-14 16:56:56.740: I/dalvikvm(397): Ljava/lang/ClassNotFoundException;: pv.ndk.Employee; in loader dalvik.system.PathClassLoader[/data/app/pv.ndk-2.apk]

這里是我的代碼:

Employee類有2個構造函數,當我調用方法getAge()返回歲

Employee()

Employee(int age)

int getAge();

令人驚訝的方法..呼叫經過并提取年齡...但是,當我嘗試調用“員工構造函數”,然后嘗試getAge()這個異常拋出...

莫名其妙它無法找到類: 我嘗試過使用GetObjectClass的所有可能性()

This works;當我通過呼叫中的Employee對象時

JNIEXPORT jint JNICALL Java_pv_ndk_Employee_getAgeC(JNIEnv *env, jobject callingObject, jobject employeeObject)

{

jclass employeeClass = env->GetObjectClass(employeeObject);

jmethodID midGetName = env->GetMethodID(employeeClass, "getAge", "()I");

int age = env->CallIntMethod(employeeObject, midGetName);

//other code

}

這是行不通的;我不知道為什么它不能找到類。 我試過用“Lpv/ndk/Emploee”“LEmployee”“pv/ndk/Employee”..甚至用以下方法嘗試:

jclass localRefCls = env->FindClass("pv/ndk/Employee");

jclass clazzEmployee = (_jclass*)env->NewGlobalRef(localRefCls);

JNIEXPORT jobject JNICALL Java_pv_ndk_Employee_createWithAge(JNIEnv *env, jobject callingObject, jint age) {

jclass employeeClass = env->FindClass("pv/ndk/Employee");

jmethodID midConstructor = env->GetMethodID(employeeClass, "", "(I)V"); // BOOM SCREWED HERE .. !!

}

但每次我的代碼來env->的GetMethodID - 虛擬機中止...

2012-02-15

Pranav

+0

你可以檢查employeeClass變量是否不為NULL? –

2012-02-15 03:48:19

+0

我不明白你的第二個代碼片段。 localRefCls有什么范圍,什么時候分配? –

2012-02-15 16:55:08

+0

@Martins:employeeClass不為NULL –

2012-02-18 01:35:37

總結

以上是生活随笔為你收集整理的android+jni+构造函数,在JNI中调用构造函数失败Android的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。