2011-04-13 7 views
1

난 변경할 수있는 C++ API 가지고안드로이드, SWIG 양방향 통신

  • 발신자에 의해 도출 될 수있는 인터페이스를 제공 (쉽게) 개체를 노출을 (고전 트리거 수신기 설계 무늬).

SWIG와 디렉터 기능을 사용하여 Python에이 API를 래핑하여 교차 언어 파생을 허용합니다. 그러나 ndk를 사용하여 컴파일 할 때 Android의 Dalvik VM에이 스크립트를 표시하려고 할 때 SWIG의 디렉터가 RTTI를 통해 지원되며 Android가 RTTI를 지원하지 않는다는 사실을 발견했습니다.

이 제한 사항을 해결할 수있는 방법에 대한 아이디어가 있으십니까? 기본적으로 JNI와 SWIG를 사용하여 Java에서 내 기본 객체를 쉽게 노출 할 수 있지만 Java 코드를 원시 코드에서 트리거 할 수 있어야합니다.

답변

1

Android는 RTTI 및 NDK r5의 예외를 지원합니다. -fexceptions-frtti 컴파일 플래그를 추가하고 APP_STL := gnustl_static 줄을 Application.mk 파일에 추가하기 만하면됩니다.

+0

그리고 이러한 옵션으로 dalvik VM suport loading jni가 컴파일 되었습니까? – Bruce

+0

네, 그렇습니다. 모든 것이 잘 작동합니다. – Michael

-1

RTTI를 사용하지 않는 고유 한 JNI를 작성해야합니다. 두려워요.

+0

사이드 질문 : swig/다른 래퍼 도구로 저에게 이것을 작성하는 방법이 있습니까? – Bruce

관련 문제