我有一个C ++ api我无法改变:
我设法使用SWIG和导演功能将此API封装到python,这允许跨语言派生。 但是,当我尝试使用ndk编译它时,为了在Dalvik的Android中的VM中公开它,我发现SWIG中的控制器是通过RTTI支持的,并且Android不支持RTTI。
有关如何解决此限制的任何想法?基本上,我有一种使用JNI和SWIG在Java中公开我的本机对象的简单方法,但我需要能够从本机代码中触发我的Java代码。
答案 0 :(得分:1)
Android确实支持来自NDK r5的RTTI和例外。只需添加-fexceptions
和-frtti
编译标记,并在APP_STL := gnustl_static
文件中添加行Application.mk
。
答案 1 :(得分:-1)
你需要编写自己不使用RTTI的JNI,我担心。