I was able to verify that the compilation is working properly after replacing SDKBoxJSHelper.css / .h files in jsb-default\frameworks\runtime-src\Classes.
However, I would need to mention that the fix is applicable only to CocosCreator 2.x. (As when I tried updating the SDKBoxJSHelper fix in CocosCreator 1.x, this will only result to errors)
yes, they’re only for ccc v2.x, because they remove some api from Director as you know.
And today or tomorrow, SDKBox will make a release for ccc v2.x.
When I tried executing the sdkbox import admob --staging, installation/update of the respective package was successful. However, when I tried recompiling my application, another problem appeared.
build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\org\cocos2dx\javascript\AppActivity.java:38: error: package com.sdkbox.plugin does not exist.
In line with that, I noticed that the SDKBox related libs are missing in my project so I tried following the manual integration guide wherein I copied the SDKBox related libs from plugin/android/libs folder to my project’s /libs folder. The libs I copied are as follows:
android-support-v4.jar
PluginAdMob.jar
PluginSdkboxAds.jar
sdkbox.jar
google-play-services.jar
I was able to verify that the JNIs are already on my projects jni directory so I didn’t need to recopy them again.
Upon doing the above steps however, I encountered another error regarding java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Partial Compilation logs:
All input files are considered out-of-date for incremental task ':AdMob_v2:mergeDebugAssets'.
Unable do incremental execution: full task run
:AdMob_v2:mergeDebugAssets (Thread[Task worker for ':',5,main]) completed. Took 0.344 secs.
:AdMob_v2:transformClassesWithDexBuilderForDebug (Thread[Task worker for ':',5,main]) started.
:AdMob_v2:transformClassesWithDexBuilderForDebug
Putting task artifact state for task ':AdMob_v2:transformClassesWithDexBuilderForDebug' into context took 0.0 secs.
Executing task ':AdMob_v2:transformClassesWithDexBuilderForDebug' (up-to-date check took 0.046 secs) due to:
No history is available.
All input files are considered out-of-date for incremental task ':AdMob_v2:transformClassesWithDexBuilderForDebug'.
Task is incremental : false
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs\android-support-v4.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs\google-play-services.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs\PluginAdMob.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs\PluginSdkboxAds.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs\sdkbox.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\cocos2d-x\cocos\platform\android\java\libs\android-async-http-1.4.9.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\cocos2d-x\cocos\platform\android\java\libs\com.android.vending.expansion.zipfile.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\cocos2d-x\cocos\platform\android\java\libs\httpclient-4.4.1.1.jar
Dexing {}
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\cocos2d-x\cocos\platform\android\java\libs\libcocosanalytics.jar
Dexing {}
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-ads-12.0.1.aar\d4d1d2a9e6999e9eb53faaf8edd236dc\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-ads-lite-12.0.1.aar\9c1d09595ab23ada2a748291ef0c0282\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-gass-12.0.1.aar\3768c1f2105ac53fc99fb1cc66f2ef8c\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-basement-12.0.1.aar\8e552446a22955e5db7b649b1b7b6daa\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-ads-license-12.0.1.aar\6be6b13d1fc3ae090bd7f7f0ed6cac32\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-ads-lite-license-12.0.1.aar\da68a6f545c9ca936128e362d212846f\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-v4-26.1.0.aar\18c58a541fdefca73885e2989052fa23\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-basement-license-12.0.1.aar\0a0aa2b09fa068c16734705bcd81238e\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\play-services-gass-license-12.0.1.aar\880396a5a5ab29a768a644a176415236\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-media-compat-26.1.0.aar\ae9c8e5d18ce0f43ded1684f67f18667\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-fragment-26.1.0.aar\e774e1eaea2d683898c62ce5626a0eb3\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-core-utils-26.1.0.aar\dc8e5fad88cf584bafeed366277383ce\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-core-ui-26.1.0.aar\92f77d0a738a0aeb5a831875df1d1c7f\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\support-compat-26.1.0.aar\ee33df8a3909de25379c5ddd4139aa94\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\modules-2\files-2.1\com.android.support\support-annotations\26.1.0\814258103cf26a15fcc26ecce35f5b7d24b73f8\support-annotations-26.1.0.jar
Jar input C:\Users\Pat\.gradle\caches\transforms-1\files-1.1\runtime-1.0.0.aar\d0501603028456513db0bf9270443520\jars\classes.jar
Jar input C:\Users\Pat\.gradle\caches\modules-2\files-2.1\android.arch.lifecycle\common\1.0.0\e414a4cb28434e25c4f6aa71426eb20cf4874ae9\common-1.0.0.jar
Jar input C:\Users\Pat\.gradle\caches\modules-2\files-2.1\android.arch.core\common\1.0.0\a2d487452376193fc8c103dd2b9bd5f2b1b44563\common-1.0.0.jar
Jar input D:\proj\AdMob_v2\build\jsb-default\frameworks\cocos2d-x\cocos\platform\android\libcocos2dx\build\intermediates\intermediate-jars\debug\classes.jar
Dexing {}
Dir input D:\proj\AdMob_v2\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\build\intermediates\classes\debug
Dexing {}
Done with all dex archive conversions
:AdMob_v2:transformClassesWithDexBuilderForDebug (Thread[Task worker for ':',5,main]) completed. Took 7.141 secs.
:AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug (Thread[Task worker for ':',5,main]) started.
:AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug
Putting task artifact state for task ':AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug' into context took 0.0 secs.
Executing task ':AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug' (up-to-date check took 0.027 secs) due to:
No history is available.
All input files are considered out-of-date for incremental task ':AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug'.
:AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
:AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug (Thread[Task worker for ':',5,main]) completed. Took 0.578 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':AdMob_v2:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
I did try cleaning my build (deleting the builds folder, and rebuild/compile again, but the problem still persists.
I have the same exact problem error: 'cocos2d::Director' has not been declared
/build/jsb-default/frameworks/runtime-src/proj.android-studio/app/jni/…/…/…/Classes/SDKBoxJSHelper.cpp: In member function ‘void sdkbox::JSListenerBase::invokeJSFun(const string&, const ValueArray&)’:
/build/jsb-default/frameworks/runtime-src/proj.android-studio/app/jni/…/…/…/Classes/SDKBoxJSHelper.cpp:37:18: error: ‘cocos2d::Director’ has not been declared
cocos2d::Director::getInstance()->getScheduler()->performFunctionInCocosThread(funName, params, this{
^
make: *** [/build/jsb-default/frameworks/runtime-src/proj.android-studio/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/cocos2djs_shared///__/Classes/SDKBoxJSHelper.o] Error 1
make: *** Waiting for unfinished jobs…
However, although I was able to successfully compile and run my app with the above steps, I did notice some problem whenever I try running the app that was compiled with debug enabled (Cocos Creator Build windows).
E/AndroidRuntime(19564): FATAL EXCEPTION: main
E/AndroidRuntime(19564): Process: org.pat.AdMob_v2, PID: 19564
E/AndroidRuntime(19564): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.pat.AdMob_v2/org.cocos2dx.javascript.AppActivity}: java.lang.ClassNotFoundException: Didn't find class "org.cocos2dx.javascript.AppActivity" on path: DexPathList[[zip file "/data/app/org.pat.AdMob_v2-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.pat.AdMob_v2-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(19564): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2126)
E/AndroidRuntime(19564): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
E/AndroidRuntime(19564): at android.app.ActivityThread.access$800(ActivityThread.java:139)
E/AndroidRuntime(19564): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
E/AndroidRuntime(19564): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(19564): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(19564): at android.app.ActivityThread.main(ActivityThread.java:5105)
E/AndroidRuntime(19564): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19564): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(19564): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
E/AndroidRuntime(19564): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
E/AndroidRuntime(19564): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(19564): Caused by: java.lang.ClassNotFoundException: Didn't find class "org.cocos2dx.javascript.AppActivity" on path: DexPathList[[zip file "/data/app/org.pat.AdMob_v2-1.apk"],nativeLibraryDirectories=[/data/app-lib/org.pat.AdMob_v2-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(19564): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(19564): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime(19564): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime(19564): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
E/AndroidRuntime(19564): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2117)
E/AndroidRuntime(19564): ... 11 more
Not sure why this happens only when Debug is enabled. I’m trying to look around and will update and I found anything useful.
worked for me - I’m using Cocos creator v2.0.1 - remember to check the “SDKBox Staging server” in the sdkbox GUI panel (open the panel from menu Extension > SDKBox > Launch ) before importing any plugins
After import facebook and compile, my project build failed, below is log, i use staging version in creator 2.0.1
D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\org\cocos2dx\javascript\AppActivity.java:38: error: package com.sdkbox.plugin does not exist
public class AppActivity extends com.sdkbox.plugin.SDKBoxActivity {
I tried again (delete plugin folder in .sdkbox folder and redownload facebook 2.4.1.0) but nothing changed, below is log, I test in windows 10 and use template default
:Game:javaPreCompileDebug (Thread[Task worker for ':' Thread 3,5,main]) started.
:Game:javaPreCompileDebug
Putting task artifact state for task ':Game:javaPreCompileDebug' into context took 0.001 secs.
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs', not found
Executing task ':Game:javaPreCompileDebug' (up-to-date check took 0.161 secs) due to:
No history is available.
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs', not found
:Game:javaPreCompileDebug (Thread[Task worker for ':' Thread 3,5,main]) completed. Took 0.176 secs.
:Game:compileDebugJavaWithJavac (Thread[Task worker for ':' Thread 3,5,main]) started.
:Game:compileDebugJavaWithJavac
Putting task artifact state for task ':Game:compileDebugJavaWithJavac' into context took 0.0 secs.
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\main\java', not found
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs', not found
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\main\java', not found
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\debug\java', not found
Executing task ':Game:compileDebugJavaWithJavac' (up-to-date check took 0.263 secs) due to:
No history is available.
All input files are considered out-of-date for incremental task ':Game:compileDebugJavaWithJavac'.
Compiling with source level 1.7 and target level 1.7.
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\libs', not found
:Game:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\main\java', not found
file or directory 'D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\debug\java', not found
Compiling with JDK Java compiler API.
D:\Work\Javascript\Project\Creator\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\src\org\cocos2dx\javascript\AppActivity.java:38: error: package com.sdkbox.plugin does not exist
public class AppActivity extends com.sdkbox.plugin.SDKBoxActivity {
I tried new empty project, import sdkbox facebook and I still encounter the same error (AppActivity.java:38: error: package com.sdkbox.plugin does not exist), please fix it.