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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android控件扫光动画,完美起航-A
- 下一篇: Android应用签名作用,安卓app签