Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to keep a C++ object inside Java code? Possible?

First I've got a legacy C++ library, and I'm migrating my app to Android with new UI.

During runtime, there might be multiple C++ objects created and destroyed dynamically. I built a set of JNI native methods to call into library to get that. But where should I keep those C++ objects? I have to keep track of them and free them if they're unnecessary.

So far I only knew Java can't reference to a C++ object. Is it possible to make a Java wrapper class which include a reference to C++ object?

Thanks.

like image 463
fifth Avatar asked Nov 06 '22 00:11

fifth


1 Answers

Yes, it's possible. You can store a pointer to your C++ object in a simple java int. That's exactly how SWIG does that.

like image 145
weekens Avatar answered Nov 12 '22 14:11

weekens