I made a project. and I’m trying to incrementally deal with making sure it works on android so as not to deal with all of porting hell in one soul sapping mass. However. Build_native.py already doesn’t like what I’m writing.
And so when I run it i get this error.
C:\cocos2d\NEETgames\StarPatrol\proj.android>python build_native.py
The Selected NDK toolchain version was 4.8 !
make.exe: Entering directory C:/cocos2d/NEETgames/StarPatrol/proj.android' [armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp [armeabi] Compile++ thumb: cocos2dcpp_shared <= AppDelegate.cpp [armeabi] Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp [armeabi] Compile++ thumb: cocos2dcpp_shared <= FileOperation.cpp In file included from jni/../../Classes/AppDelegate.cpp:3: jni/../../Classes/Mode_Spacebattle.h:5:10: fatal error: 'cocos2d\cocos\ui\UIButton.h' file not found #include "cocos2d\cocos\ui\UIButton.h" ^ jni/../../Classes/HelloWorldScene.cpp:73:45: warning: missing sentinel in function call [-Wsentinel] auto menu = Menu::create(closeItem, NULL); ^ , NULL jni/../../cocos2d/cocos/3d/../2d/CCMenu.h:81:18: note: function has been explicitly marked sentinel here static Menu* create(MenuItem* item, ...) CC_REQUIRES_NULL_TERMINATION; ^ 1 error generated. make.exe: *** [obj/local/armeabi/objs-debug/cocos2dcpp_shared/__/__/Classes/AppD elegate.o] Error 1 make.exe: *** Waiting for unfinished jobs.... 1 warning generated. make.exe: Leaving directory
C:/cocos2d/NEETgames/StarPatrol/proj.android’
Traceback (most recent call last):
File “build_native.py”, line 159, in
build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
File “build_native.py”, line 146, in build
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,and
roid_platform,build_mode)
File “build_native.py”, line 82, in do_build
raise Exception(“Build dynamic library for project [ " + app_android_root +
" ] fails!”)
Exception: Build dynamic library for project [ C:\cocos2d\NEETgames\StarPatrol\p
roj.android ] fails!
C:\cocos2d\NEETgames\StarPatrol\proj.android>python build_native.py
The Selected NDK toolchain version was 4.8 !
make.exe: Entering directory C:/cocos2d/NEETgames/StarPatrol/proj.android' jni/Android.mk:13: *** missing separator. Stop. make.exe: Leaving directory
C:/cocos2d/NEETgames/StarPatrol/proj.android’
Traceback (most recent call last):
File “build_native.py”, line 159, in
build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
File “build_native.py”, line 146, in build
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,and
roid_platform,build_mode)
File “build_native.py”, line 82, in do_build
raise Exception(“Build dynamic library for project [ " + app_android_root +
" ] fails!”)
Exception: Build dynamic library for project [ C:\cocos2d\NEETgames\StarPatrol\p
roj.android ] fails!
C:\cocos2d\NEETgames\StarPatrol\proj.android>python build_native.py clean
The Selected NDK toolchain version was 4.8 !
make.exe: Entering directory C:/cocos2d/NEETgames/StarPatrol/proj.android' jni/Android.mk:13: *** missing separator. Stop. make.exe: Leaving directory
C:/cocos2d/NEETgames/StarPatrol/proj.android’
Traceback (most recent call last):
File “build_native.py”, line 159, in
build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
File “build_native.py”, line 146, in build
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,and
roid_platform,build_mode)
File “build_native.py”, line 82, in do_build
raise Exception(“Build dynamic library for project [ " + app_android_root +
" ] fails!”)
Exception: Build dynamic library for project [ C:\cocos2d\NEETgames\StarPatrol\p
roj.android ] fails!
C:\cocos2d\NEETgames\StarPatrol\proj.android>
Now. I’ve checked. And UIButton.h IS where it says it isn’t. So why is it being stupid? and if it’s going to persist in being stupid can you suggest an alternative to using build_native.py?
edit:
also to pre empt the question. Contents of android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/…/…/cocos2d)
$(call import-add-path,$(LOCAL_PATH)/…/…/cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/…/…/cocos2d/cocos)
$(call import-add-path,$(LOCAL_PATH)/…/…/cocos2d/cocos/ui)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp
…/…/Classes/AppDelegate.cpp
…/…/Classes/Ability_Space.cpp
…/…/Classes/AS_effect.cpp
…/…/Classes/CBReader.cpp
…/…/Classes/Common.cpp
…/…/Classes/Mode_Spacebattle.cpp
…/…/Classes/Module.cpp
…/…/Classes/Module_ability.cpp
…/…/Classes/Module_Booster.cpp
…/…/Classes/Module_Commodity.cpp
…/…/Classes/NPCship.cpp
…/…/Classes/pbar.cpp
…/…/Classes/Playership.cpp
…/…/Classes/ReferenceLibrary.cpp
…/…/Classes/Starship.cpp
…/…/Classes/StarshipBattler.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/…/…/Classes
LOCAL_STATIC_LIBRARIES := cocos2dx_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
I tossed in the ui sub path just in case that would make the compiler less stupid.