No implementation found for void com.sdkbox.plugin.SDKBox.nativeInit

a lot of errors when compiling new project:

Android NDK: WARNING: Unsupported source file extensions in /Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/Android.mk for module cocos2d_js_static    
Android NDK:   \    
make: Entering directory `/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/app'
[armeabi] Compile++ thumb: cocos2d_js_static <= ScriptingCore.cpp
[armeabi] Compile++ thumb: cocos2d_js_static <= js_bindings_core.cpp
[armeabi] Compile++ thumb: cocos2d_js_static <= js_bindings_opengl.cpp
[armeabi] Compile++ thumb: cocos2d_js_static <= jsb_opengl_functions.cpp
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In constructor 'ScriptingCore::ScriptingCore()':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:480:3: error: class 'ScriptingCore' does not have any field named '_jsInited'
 , _jsInited(false)
   ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:481:3: error: class 'ScriptingCore' does not have any field named '_needCleanup'
 , _needCleanup(false)
   ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'void ScriptingCore::createGlobalContext()':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:597:10: error: '_jsInited' was not declared in this scope
     if (!_jsInited && !JS_Init())
          ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:647:5: error: '_needCleanup' was not declared in this scope
     _needCleanup = true;
     ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: At global scope:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:660:29: error: prototype for 'JS::PersistentRootedScript* ScriptingCore::getScript(const char*)' does not match any in class 'ScriptingCore'
 JS::PersistentRootedScript* ScriptingCore::getScript(const char *path)
                             ^
In file included from /Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:25:0:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/3d/../scripting/js-bindings/manual/ScriptingCore.h:259:15: error: candidate is: JSScript* ScriptingCore::getScript(const char*)
     JSScript* getScript(const char *path);
               ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:675:29: error: prototype for 'JS::PersistentRootedScript* ScriptingCore::compileScript(const char*, JS::HandleObject, JSContext*)' does not match any in class 'ScriptingCore'
 JS::PersistentRootedScript* ScriptingCore::compileScript(const char *path, JS::HandleObject global, JSContext* cx)
                             ^
In file included from /Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:25:0:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/3d/../scripting/js-bindings/manual/ScriptingCore.h:267:10: error: candidate is: void ScriptingCore::compileScript(const char*, JS::HandleObject, JSContext*)
     void compileScript(const char *path, JS::HandleObject global, JSContext* cx = NULL);
          ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:778:63: error: prototype for 'std::unordered_map<std::basic_string<char>, JS::PersistentRooted<JSScript*>*>& ScriptingCore::getFileScript()' does not match any in class 'ScriptingCore'
 std::unordered_map<std::string, JS::PersistentRootedScript*>& ScriptingCore::getFileScript()
                                                               ^
In file included from /Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:25:0:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/3d/../scripting/js-bindings/manual/ScriptingCore.h:315:49: error: candidate is: std::unordered_map<std::basic_string<char>, JSScript*>& ScriptingCore::getFileScript()
     std::unordered_map<std::string, JSScript*> &getFileScript();
                                                 ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::runScript(const char*, JS::HandleObject, JSContext*)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:799:49: error: 'void script' has incomplete type
     auto script = compileScript(path, global, cx);
                                                 ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::requireScript(const char*, JS::HandleObject, JSContext*, JS::MutableHandleValue)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:830:49: error: 'void script' has incomplete type
     auto script = compileScript(path, global, cx);
                                                 ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'void ScriptingCore::cleanup()':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:867:10: error: '_needCleanup' was not declared in this scope
     if (!_needCleanup) {
          ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:872:20: error: 'garbageCollect' was not declared in this scope
     garbageCollect();
                    ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:900:5: error: '_needCleanup' was not declared in this scope
     _needCleanup = false;
     ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: At global scope:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:927:81: error: no 'void ScriptingCore::retainScriptObject(cocos2d::Ref*, cocos2d::Ref*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::retainScriptObject(cocos2d::Ref* owner, cocos2d::Ref* target)
                                                                                 ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:960:58: error: no 'void ScriptingCore::rootScriptObject(cocos2d::Ref*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::rootScriptObject(cocos2d::Ref* target)
                                                          ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:994:82: error: no 'void ScriptingCore::releaseScriptObject(cocos2d::Ref*, cocos2d::Ref*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::releaseScriptObject(cocos2d::Ref* owner, cocos2d::Ref* target)
                                                                                  ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1027:60: error: no 'void ScriptingCore::unrootScriptObject(cocos2d::Ref*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::unrootScriptObject(cocos2d::Ref* target)
                                                            ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1061:68: error: no 'void ScriptingCore::releaseAllChildrenRecursive(cocos2d::Node*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::releaseAllChildrenRecursive(cocos2d::Node *node)
                                                                    ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1071:61: error: no 'void ScriptingCore::releaseAllNativeRefs(cocos2d::Ref*)' member function declared in class 'ScriptingCore'
 void ScriptingCore::releaseAllNativeRefs(cocos2d::Ref* owner)
                                                             ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::handleTouchesEvent(void*, cocos2d::EventTouch::EventCode, const std::vector<cocos2d::Touch*>&, cocos2d::Event*, JS::MutableHandleValue)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1400:128: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         JS::RootedValue jsret(_cx, OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(_cx, touch, typeClassTouch, "cocos2d::Touch")));
                                                                                                                                ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1413:119: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         dataVal[1] = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(_cx, event, typeClassEvent, "cocos2d::EventTouch"));
                                                                                                                       ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::handleTouchEvent(void*, cocos2d::EventTouch::EventCode, cocos2d::Touch*, cocos2d::Event*, JS::MutableHandleValue)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1447:114: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         dataVal[0] = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(_cx, touch, typeClassTouch, "cocos2d::Touch"));
                                                                                                                  ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::handleMouseEvent(void*, cocos2d::EventMouse::MouseEventType, cocos2d::Event*, JS::MutableHandleValue)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1476:117: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         jsval dataVal = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(_cx, event, typeClass, "cocos2d::EventMouse"));
                                                                                                                     ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: At global scope:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1554:136: error: no 'bool ScriptingCore::handleKeyboardEvent(void*, cocos2d::EventKeyboard::KeyCode, bool, cocos2d::Event*)' member function declared in class 'ScriptingCore'
 bool ScriptingCore::handleKeyboardEvent(void* nativeObj, cocos2d::EventKeyboard::KeyCode keyCode, bool isPressed, cocos2d::Event* event)
                                                                                                                                        ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'bool ScriptingCore::handleFocusEvent(void*, cocos2d::ui::Widget*, cocos2d::ui::Widget*)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1595:111: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(_cx, widgetLoseFocus, typeClass, "cocos2d::ui::Widget")),
                                                                                                               ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'int ScriptingCore::executeCustomTouchesEvent(cocos2d::EventTouch::EventCode, const std::vector<cocos2d::Touch*>&, JSObject*)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1616:116: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
         jsval jsret = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(this->_cx, touch, typeClass, "cocos2d::Touch"));
                                                                                                                    ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'int ScriptingCore::executeCustomTouchEvent(cocos2d::EventTouch::EventCode, cocos2d::Touch*, JSObject*)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1642:114: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
     jsval jsTouch = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(this->_cx, touch, typeClass, "cocos2d::Touch"));
                                                                                                                  ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: In member function 'int ScriptingCore::executeCustomTouchEvent(cocos2d::EventTouch::EventCode, cocos2d::Touch*, JSObject*, JS::MutableHandleValue)':
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1660:114: error: 'jsb_get_or_create_weak_jsobject' was not declared in this scope
     jsval jsTouch = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(this->_cx, touch, typeClass, "cocos2d::Touch"));
                                                                                                                  ^
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp: At global scope:
/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/../../cocos2d-x/cocos/scripting/js-bindings/proj.android/../manual/ScriptingCore.cpp:1770:36: error: no 'void ScriptingCore::garbageCollect()' member function declared in class 'ScriptingCore'
 void ScriptingCore::garbageCollect()
                                    ^
[armeabi] Compile++ thumb: cocos2d_js_static <= jsb_opengl_manual.cpp
[armeabi] Compile++ thumb: cocos2d_js_static <= jsb_opengl_registration.cpp
[armeabi] Compile++ thumb: cocos2d_js_static <= jsb_event_dispatcher_manual.cpp
cc1plus: warning: unrecognized command line option "-Wno-extern-c-compat"
cc1plus: warning: unrecognized command line option "-Wno-extern-c-compat"
make: *** [obj/local/armeabi/objs-debug/cocos2d_js_static/__/manual/ScriptingCore.o] Error 1
make: *** Waiting for unfinished jobs....
make: Leaving directory `/Users/heximal/Documents/cocos/MyGame/frameworks/runtime-src/proj.android-studio/app'
Error running command, return code: 2.

This means either your cocos2d-x have some problem or your build environment have some issue, which version are you using?

I’m using version 3.10.

Can you try upgrading to latest version? make sure the new game compiles would be the first step…

it’s very risky for me) what if it breaks everything?
can I make some backup so I could rollback to 3.10 later?

would it be enough to backup .profile with cocos path exports?

and one more thing. is latest version compatible with Cocos Studio? I know, this product is no longer supported, but my whole project is designed with it

If that’s the case try downgrade your NDK to NDK 10e and see if it works with cocos2d-x 3.10

I currently have NDK 10e (

Hi
having same issue.
i am using cococ2d-x 3.17

05-23 15:37:42.118 13081-13081/? I/zygote: Late-enabling -Xcheck:jni 05-23 15:37:42.163 13081-13088/? I/zygote: Debugger is no longer active 05-23 15:37:42.559 13081-13081/? I/InstantRun: starting instant run server: is main process 05-23 15:37:42.664 13081-13081/? D/main: cocos_android_app_init 05-23 15:37:42.667 13081-13081/? I/SDKBOX_CORE: Sdkbox Droid starting. 05-23 15:37:42.668 13081-13081/? E/zygote: No implementation found for void com.sdkbox.plugin.SDKBox.nativeInit(java.lang.Object, java.lang.ClassLoader) (tried Java_com_sdkbox_plugin_SDKBox_nativeInit and Java_com_sdkbox_plugin_SDKBox_nativeInit__Ljava_lang_Object_2Ljava_lang_ClassLoader_2) 05-23 15:37:42.668 13081-13081/? D/AndroidRuntime: Shutting down VM 05-23 15:37:42.670 13081-13081/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.myprojects.game, PID: 13081 java.lang.UnsatisfiedLinkError: No implementation found for void com.sdkbox.plugin.SDKBox.nativeInit(java.lang.Object, java.lang.ClassLoader) (tried Java_com_sdkbox_plugin_SDKBox_nativeInit and Java_com_sdkbox_plugin_SDKBox_nativeInit__Ljava_lang_Object_2Ljava_lang_ClassLoader_2) at com.sdkbox.plugin.SDKBox.nativeInit(Native Method) at com.sdkbox.plugin.SDKBox.init(SDKBox.java:71) at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:128) at org.cocos2dx.cpp.AppActivity.onCreate(AppActivity.java:35) at android.app.Activity.performCreate(Activity.java:6999) at android.app.Activity.performCreate(Activity.java:6990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

1 Like

Same for me, after I upgraded iap to 2.4.1.1
cocos2d-x 3.17

Update:
After iap 2.4.0.3 the AppActivity extends com.sdkbox.plugin.SDKBoxActivity
Reason of crash - it was because of my changes in Cocos2dxActivity.java and native library was not loaded in Cocos2dxActivity::onCreate (I’m loading a bit later in AppActivity::onCreate).

Solution for me:
I removed extends com.sdkbox.plugin.SDKBoxActivity

  1. revert Cocos2dActivity.java
  2. extends com.sdkbox.plugin.SDKBoxActivity
  3. move sdkbox.jar from engine jar lib (cocos2d/cocos/platform/android/java/libs/) to project.android{-studio}

keep Sdks out of engine and do not modify engine.

One fixed for sdkbox.jar > UnsatisfiedLinkError on Released Game.