I’ve been using SDKBox IAP for more than a year now and always worked properly. Last working version was 2.4.3.3. I updated to the new version 2.5.0.1 a little while ago and just realized that on Android, after every transactions, the app crashes.
I do receive the onSuccess, can manage to give the items to the user but right after it crashes (like a few instructions after I exit onSuccess). It is unclear if it does happen on all android versions or only some versions (I am using 6.0.1) and customers have reported it as well (unknown Android version). It seems related to onConsumed which was introduced in this version. I tried to update to the latest version and it still does the same.
Here is the stack trace:
typeinfo name for sdkbox::IAPListener 0x0000007f7a7ff160
sdkbox::IAPWrapperEnabled::onConsumed(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 > const&, 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 > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > const&) 0x0000007f7a006cac
Java_com_sdkbox_plugin_IAPWrapper_nativeOnConsumed 0x0000007f79ffcabc
art_quick_generic_jni_trampoline 0x0000007f937e45ac
art_quick_invoke_static_stub 0x0000007f937dac1c
art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) 0x0000007f937e98c8
artInterpreterToCompiledCodeBridge 0x0000007f93b88f40
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x0000007f93963224
art::JValue art::interpreter::ExecuteGotoImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue) 0x0000007f93799c44
artInterpreterToInterpreterBridge 0x0000007f93941624
bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) 0x0000007f93963224
art::JValue art::interpreter::ExecuteGotoImpl<false, false>(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue) 0x0000007f93799c44
art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*) 0x0000007f9394122c
artQuickToInterpreterBridge 0x0000007f93bf4a54
art_quick_to_interpreter_bridge 0x0000007f937e46e8
void android.opengl.GLSurfaceView$GLThread.guardedRun() 0x000000007419912c
void android.opengl.GLSurfaceView$GLThread.run() 0x000000007419af54
art_quick_invoke_stub 0x0000007f937da968
art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) 0x0000007f937e9820
art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*) 0x0000007f93ae6b2c
art::CreateCallback(void*) 0x0000007f93b15340
__pthread_start(void*) 0x0000007f97d26618
__start_thread 0x0000007f97cdb688