private
- Forum-Beiträge: 1
17.04.2012, 11:21:19 via Website
17.04.2012 11:21:19 via Website
Hallo,
ich habe eine Methode in test.cpp
- geht das? ein anderer Ansatz?
- der findet die "addElement" nicht :"method not found :Ljava/util/Vector;. addElement:.."
ich habe auch mit "Ljava/util/Vector;" hat auch nicht geklappt.
da ich long datentyp habe deshalb "J" und addElement hat void rückgabewert deshalb "V"
- warum gibt die "add" unter java.util.Vector nicht, dort war nur addElement zu sehen??
auch mit dem return vector zu jobject sind diese beide vom typ her verträglich?
bitte um Eure Hilfe.
ps.: test.cpp ist nicht im eclipseProjekt aber die wird includiert und das ist kein problem.
alex
ich habe eine Methode in test.cpp
1vector<long> get_Vector();
2..
3return vec;
in java 2..
3return vec;
1public native Vector<Long> getVectorProxy();
1TestActivity ta= new TestActivity();
2 Vector<Long> vec = new Vector<Long>();
3 long item =(long)ta.getVectorProxy().lastElement();
4 vec.add(item);
in jni c++2 Vector<Long> vec = new Vector<Long>();
3 long item =(long)ta.getVectorProxy().lastElement();
4 vec.add(item);
1JNIEXPORT jobject JNICALL Java_P_TestActivity_getVectorProxy
2 (JNIEnv *Penv, jobject jobj){
3 jclass classP = (Penv)->FindClass("java/util/Vector");
4 jobject ret = (Penv)->NewObject(classP, (Penv)->GetMethodID(classP, "<init>", "()V"));
5
6 jmethodID add= (Penv)->GetMethodID(classP, "addElement","(JLjava/lang/Object;)V");
7 (Penv)->CallObjectMethod(ret, add, get_Vector().at(0));
8
9 return ret;
ich möchte den Vector vom test.cpp über jni zu java passen.2 (JNIEnv *Penv, jobject jobj){
3 jclass classP = (Penv)->FindClass("java/util/Vector");
4 jobject ret = (Penv)->NewObject(classP, (Penv)->GetMethodID(classP, "<init>", "()V"));
5
6 jmethodID add= (Penv)->GetMethodID(classP, "addElement","(JLjava/lang/Object;)V");
7 (Penv)->CallObjectMethod(ret, add, get_Vector().at(0));
8
9 return ret;
- geht das? ein anderer Ansatz?
- der findet die "addElement" nicht :"method not found :Ljava/util/Vector;. addElement:.."
ich habe auch mit "Ljava/util/Vector;" hat auch nicht geklappt.
da ich long datentyp habe deshalb "J" und addElement hat void rückgabewert deshalb "V"
- warum gibt die "add" unter java.util.Vector nicht, dort war nur addElement zu sehen??
auch mit dem return vector zu jobject sind diese beide vom typ her verträglich?
bitte um Eure Hilfe.
ps.: test.cpp ist nicht im eclipseProjekt aber die wird includiert und das ist kein problem.
alex
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.