I just moved over to the new cocos2d-x v4 with metal backend and have installed the SDKBOX 2.5.0 IAP plugin via the GUI installer.
It’s my understanding that v4 has completely moved over to a cmake build system (no Android.mk anymore!), so I added the following into my CMakeLists.txt:-
add sdkbox lib
if(ANDROID)
add_definitions(-DSDKBOX_ENABLED)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/jni/sdkbox/)
target_link_libraries(${APP_NAME} ext_sdkbox
)
endif()add PluginIAP lib
if(ANDROID)
add_definitions(-DSDKBOX_ENABLED)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/jni/PluginIAP/)
target_link_libraries(${APP_NAME} ext_PluginIAP
)
endif()
as per the advice in this recent thread:- https://discuss.cocos2d-x.org/t/sdkbox-2-4-3-0-bugfix/44944/7
Everything compiles fine in Android Studio, including an #include to PluginIAP.h and a subclass of IAPListener, so PluginIAP is being recognised in some form. However, as soon as I add a call to IAP:init() I get a torrent of linker errors:-
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In function
void sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_]+0xa0): undefined reference to
sdkbox::JNIReferenceDeleter::operator()(_jstring*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_]+0xcc): undefined reference to
sdkbox::JNIReferenceDeleter::~JNIReferenceDeleter()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEET_P8_jobjectPKcDpT0_]+0x140): undefined reference to
sdkbox::Logger::LogImpl(sdkbox::LogLevel, char const*, char const*, …)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0x50): undefined reference to
sdkbox::JNIUtils::GetJNIMethodInfo(_jobject*, char const*, char const*, _JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0x54): undefined reference to
sdkbox::JNIUtils::__getEnvAttach()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0x64): undefined reference to
sdkbox::JNIReferenceDeleter::JNIReferenceDeleter(_JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0x9c): undefined reference to
sdkbox::JNIUtils::NewJString(char const*, _JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0xa8): undefined reference to
sdkbox::JNIReferenceDeleter::operator()(_jstring*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0xd8): undefined reference to
sdkbox::JNIReferenceDeleter::~JNIReferenceDeleter()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int>(_jobject*, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, int)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEiEEET_P8_jobjectPKcDpT0_]+0x150): undefined reference to
sdkbox::Logger::LogImpl(sdkbox::LogLevel, char const*, char const*, …)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x34): undefined reference to
sdkbox::Proxy::Proxy()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x54): undefined reference to
sdkbox::SdkboxCore::getInstance()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x88): undefined reference to
sdkbox::SdkboxCore::getMetadata(std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&) const’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x150): undefined reference to
sdkbox::JNIUtils::__getEnv()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x1bc): undefined reference to
sdkbox::Logger::e(char const*, char const*, …)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::IAPProxy()': (.text._ZN6sdkbox8IAPProxyC2Ev+0x1e0): undefined reference to
sdkbox::Logger::i(char const*, char const*, …)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x58): undefined reference to
sdkbox::JNIUtils::GetJNIMethodInfo(_jobject*, char const*, char const*, _JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x5c): undefined reference to
sdkbox::JNIUtils::__getEnvAttach()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x6c): undefined reference to
sdkbox::JNIReferenceDeleter::JNIReferenceDeleter(_JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0xc4): undefined reference to
sdkbox::JNIUtils::NewMap(std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator >, std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > > > >, _JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0xd0): undefined reference to
sdkbox::JNIReferenceDeleter::operator()(_jobject*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x114): undefined reference to
sdkbox::JNIUtils::NewJString(char const*, _JNIEnv*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x120): undefined reference to
sdkbox::JNIReferenceDeleter::operator()(_jstring*)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x150): undefined reference to
sdkbox::JNIReferenceDeleter::~JNIReferenceDeleter()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionvoid sdkbox::JNIInvoke<void, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >(_jobject*, char const*, std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)': (.text._ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_[_ZN6sdkbox9JNIInvokeIvJNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEES8_EEET_P8_jobjectPKcDpT0_]+0x1f8): undefined reference to
sdkbox::Logger::LogImpl(sdkbox::LogLevel, char const*, char const*, …)’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::init(std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&) const': (.text._ZNK6sdkbox8IAPProxy4initERKNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEERSC_+0x40): undefined reference to
sdkbox::SdkboxCore::getInstance()’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::init(std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&) const': (.text._ZNK6sdkbox8IAPProxy4initERKNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEERSC_+0x48): undefined reference to
sdkbox::SdkboxCore::getStoreConfig() const’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o): In functionsdkbox::IAPProxy::init(std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > > > > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&) const': (.text._ZNK6sdkbox8IAPProxy4initERKNSt6__ndk13mapINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES8_NS1_4lessIS8_EENS6_INS1_4pairIKS8_S8_EEEEEERSC_+0x58): undefined reference to
sdkbox::Json::dump() const’
…/…/…/…/jni/PluginIAP/libs_c++_static/arm64-v8a/libPluginIAP.a(IAPProxy.o):(.data.rel.ro._ZTIN6sdkbox8IAPProxyE[_ZTIN6sdkbox8IAPProxyE]+0x10): undefined reference to `typeinfo for sdkbox::Proxy’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Apologies for the extremely verbose error log, but I figured there might something in there that someone might spot of the root cause.
Anyone else seen this or know what’s going on?