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
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?
system
closed
June 15, 2019, 10:07am
#12
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.