Sdkboxplay crashing in cocos 3.17.2

Sdkboxplay crashing in cocos 3.17.2
0

I am using cocos framework 3.17.2 and implementing google sign-in.
I followed the steps given in http://docs.sdkbox.com/en/plugins/sdkboxplay/v3-cpp/

But It’s giving error for sdkbox in “public class AppActivity extends com.sdkbox.plugin.SDKBoxActivity”

plz copy jars to proj.android/app/libs/ folder.

@yinjimmy I added PluginSdkboxPlay.jar and sdkbox.jar but now its crashing on launch

whats the crash log?

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := MyGame_shared

LOCAL_MODULE_FILENAME := libMyGame

LOCAL_SRC_FILES := $(LOCAL_PATH)/hellocpp/main.cpp
$(LOCAL_PATH)/…/…/…/Classes/AppDelegate.cpp
$(LOCAL_PATH)/…/…/…/Classes/SecondScene.cpp
$(LOCAL_PATH)/…/…/…/Classes/HelloWorldScene.cpp

LOCAL_CPPFLAGS := -DSDKBOX_ENABLED
LOCAL_LDLIBS := -landroid
-llog
LOCAL_C_INCLUDES := $(LOCAL_PATH)/…/…/…/Classes
LOCAL_WHOLE_STATIC_LIBRARIES := PluginSdkboxPlay
sdkbox

_COCOS_HEADER_ANDROID_BEGIN

_COCOS_HEADER_ANDROID_END

LOCAL_STATIC_LIBRARIES := cc_static

_COCOS_LIB_ANDROID_BEGIN

_COCOS_LIB_ANDROID_END

include $(BUILD_SHARED_LIBRARY)
$(call import-add-path,$(LOCAL_PATH))

$(call import-module, cocos)
$(call import-module, ./sdkbox)
$(call import-module, ./PluginSdkboxPlay)

_COCOS_LIB_IMPORT_ANDROID_BEGIN

_COCOS_LIB_IMPORT_ANDROID_END

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 com.sdkbox.plugin.SDKBoxActivity.onCreate(SDKBoxActivity.java:13)
at org.cocos2dx.cpp.AppActivity.onCreate(AppActivity.java:38)
at android.app.Activity.performCreate(Activity.java:6259)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2382)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5459)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

how do you compile ?

the file your post is andorid.mk, but cocos use cmake as default since 3.17.1

plz try:

 cocos compile -p android --ndk-toolchain ndk-build

or use

sdkbox import sdkboxplay --staging

No error while compiling but the app crash on launch
Should i add any code to CMake ?

cmake_minimum_required(VERSION 3.6)

set(APP_NAME TestLab)

project(${APP_NAME})

set(COCOS2DX_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cocos2d)
set(CMAKE_MODULE_PATH ${COCOS2DX_ROOT_PATH}/cmake/Modules/)

include(CocosBuildSet)
add_subdirectory(${COCOS2DX_ROOT_PATH}/cocos ${ENGINE_BINARY_PATH}/cocos/core)

record sources, headers, resources…

set(GAME_SOURCE)
set(GAME_HEADER)

set(GAME_RES_FOLDER
“${CMAKE_CURRENT_SOURCE_DIR}/Resources”
)
if(APPLE OR WINDOWS)
cocos_mark_multi_resources(common_res_files RES_TO “Resources” FOLDERS ${GAME_RES_FOLDER})
endif()

add cross-platforms source files and header files

list(APPEND GAME_SOURCE
Classes/AppDelegate.cpp
Classes/HelloWorldScene.cpp
Classes/SecondScene.cpp
)
list(APPEND GAME_HEADER
Classes/AppDelegate.h
Classes/HelloWorldScene.h
Classes/SecondScene.h
)

if(ANDROID)
# change APP_NAME to the share library name for Android, it’s value depend on AndroidManifest.xml
set(APP_NAME MyGame)
list(APPEND GAME_SOURCE
proj.android/app/jni/hellocpp/main.cpp
)

elseif(LINUX)
list(APPEND GAME_SOURCE
proj.linux/main.cpp
)
elseif(WINDOWS)
list(APPEND GAME_HEADER
proj.win32/main.h
proj.win32/resource.h
)
list(APPEND GAME_SOURCE
proj.win32/main.cpp
proj.win32/game.rc
${common_res_files}
)
elseif(APPLE)
if(IOS)
list(APPEND GAME_HEADER
proj.ios_mac/ios/AppController.h
proj.ios_mac/ios/RootViewController.h
)
set(APP_UI_RES
proj.ios_mac/ios/LaunchScreen.storyboard
proj.ios_mac/ios/LaunchScreenBackground.png
proj.ios_mac/ios/Images.xcassets
)
list(APPEND GAME_SOURCE
proj.ios_mac/ios/main.m
proj.ios_mac/ios/AppController.mm
proj.ios_mac/ios/RootViewController.mm
proj.ios_mac/ios/Prefix.pch
${APP_UI_RES}
)
elseif(MACOSX)
set(APP_UI_RES
proj.ios_mac/mac/Icon.icns
proj.ios_mac/mac/Info.plist
)
list(APPEND GAME_SOURCE
proj.ios_mac/mac/main.cpp
proj.ios_mac/mac/Prefix.pch
${APP_UI_RES}
)
endif()
list(APPEND GAME_SOURCE ${common_res_files})
endif()

mark app complie info and libs info

set(all_code_files
${GAME_HEADER}
${GAME_SOURCE}
)
if(NOT ANDROID)
add_executable(${APP_NAME} ${all_code_files})
else()
add_library(${APP_NAME} SHARED ${all_code_files})
add_subdirectory(${COCOS2DX_ROOT_PATH}/cocos/platform/android ${ENGINE_BINARY_PATH}/cocos/platform)
target_link_libraries(${APP_NAME} -Wl,–whole-archive cpp_android_spec -Wl,–no-whole-archive)
endif()

target_link_libraries(${APP_NAME} cocos2d)
target_include_directories(${APP_NAME}
PRIVATE Classes
PRIVATE ${COCOS2DX_ROOT_PATH}/cocos/audio/include/
)

mark app resources

setup_cocos_app_config(${APP_NAME})
if(APPLE)
set_target_properties(${APP_NAME} PROPERTIES RESOURCE “${APP_UI_RES}”)
if(MACOSX)
set_target_properties(${APP_NAME} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST “${CMAKE_CURRENT_SOURCE_DIR}/proj.ios_mac/mac/Info.plist”
)
elseif(IOS)
cocos_pak_xcode(${APP_NAME} INFO_PLIST “iOSBundleInfo.plist.in”)
set_xcode_property(${APP_NAME} ASSETCATALOG_COMPILER_APPICON_NAME “AppIcon”)
set_xcode_property(${APP_NAME} DEVELOPMENT_TEAM “”)
set_xcode_property(${APP_NAME} CODE_SIGN_IDENTITY “iPhone Developer”)
endif()
elseif(WINDOWS)
cocos_copy_target_dll(${APP_NAME})
endif()

if(LINUX OR WINDOWS)
set(APP_RES_DIR “$<TARGET_FILE_DIR:${APP_NAME}>/Resources”)
cocos_copy_target_res(${APP_NAME} COPY_TO ${APP_RES_DIR} FOLDERS ${GAME_RES_FOLDER})
endif()

sdkbox import sdkboxplay --staging

plz add codes to CMakeLists.txt

$ git diff CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 39b29f6..602461b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -129,6 +129,18 @@ target_include_directories(${APP_NAME}

 # mark app resources
 setup_cocos_app_config(${APP_NAME})
+# PluginSdkboxPlay
+if(ANDROID)
+    add_definitions(-DSDKBOX_ENABLED)
+    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/proj.android/app/jni/PluginSdkboxPlay/)
+    target_link_libraries(${APP_NAME} ext_PluginSdkboxPlay)
+endif()
+# sdkbox
+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()
 if(APPLE)
     set_target_properties(${APP_NAME} PROPERTIES RESOURCE "${APP_UI_RES}")
     if(MACOSX)

@yinjimmy The issue got fixed after adding the code

Can you please make a list of all code need to be added in CMake for different plugins used (Facebook, Admob , etc) and post here?

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.