I've been expanding on the example given here:
http://davanum.wordpress.com/2007/12/09/android-invoke-jni-based-methods-bridging-cc-and-java/
(thanks for that example!)
and have am getting Unresolved symbols when I have a class with a
virtual function. I am using the java code given in the above
example. Here's the C++ code I am using:
#include "com_hp_CamDemo_Native.h"
class jj {
virtual int func() {return 0;};// this line causes a failure
// int func() {return 0;};// this line works
};
JNIEXPORT jlong JNICALL Java_com_hp_CamDemo_Native_add (JNIEnv * env,
jclass c, jlong a, jlong b) {
jj *j = new jj;
return a * b * 4;
}
There are two function definitions in the class jj. The one with the
virtual keyword (which forces the class to have a vtable) results in
the UnsatisifiedLinkError exception being thrown, while the non-
virtual function works fine.
Here are the compile and link command lines I am using
arm-none-linux-gnueabi-g++ -MD -c -fpic -I/usr/java/jdk1.6.0_11/
include/ -I/usr/java/jdk1.6.0_11/include/linux -o obj/jini.o jini.cpp
arm-none-linux-gnueabi-ld -T armelf_linux_eabi.xsc --error-unresolved-
symbols -static -shared -o libNative.so obj/jini.o
Is there a command line switch I'm missing that will allow this to be
used in android?
FWIW, I'm building the .so on Fedora Core 8 with the arm-2007q3
toolset and I'm running the android emulator on windowsXP.
Thanks for any insight or suggestions on how to find a solution for
this!
jim anderson
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---