关于3.5 3.6版本sh: cocos: command not found解决方法

3.5的话,将工程导入到Eclipse中,会报sh: cocos: command not found的错误,但是用控制台能正常打包。这是一个Bug。

最近一直看有人问这个问题,直接发个帖子把解决方法说下。后续版本会对这个问题进行修复。

首先设置下Eclipse里面环境,如图

根据自己实际情况配置下上面4项。

之后找到找到 …/proj.android/build_native.py

将command = ‘%s/cocos compile -p android -s %s -m %s’ % (COCOS_CONSOLE_ROOT, app_android_root, build_mode)替换成

OK,搞定…

PS:由于Python的语法是缩进的,导致童学们方法无效,这里就用截图的方法扔上来,各位自己码字吧:12:

劝你用cocos2dx 3.1.1 版本

我用的是3.1.1 ,现在开发的游戏没有毛病,运行速度挺快的

3.1.1也是有Bug的,只是你目前没发现罢了。引擎的Bug一般是在高版本修复。新功能也在新版本里面。
所以如果开新项目的话,个人感觉还是用新版本好点。如果项目进行一半,还是不要换了。

3.5太多坑了。
楼主的方法根本就不行。
又转回3.4了,还是等3.6出来再换吧。

可以用的,谢谢分享,楼主笔误,更正。

try: COCOS_CONSOLE_ROOT
except Exception:
print “COCOS_CONSOLE_ROOT not define. Please define COCOS_CONSOLE_ROOT in your environment!”
sys.exit(1)
command = '%s/cocos compile -p android -s %s -m s' (COCOS_CONSOLE_ROOT, app_android_root, build_mode)

感谢纠正。确实没发现。

按照版主的方法修改 依然无效
eclipse

**** Build of configuration Release for project Healer3.5 ****

python /Users/wyk/Documents/project/Healer/Healer3.5/proj.android/build_native.py -b release all
Please use cocos console instead.

COCOS_CONSOLE_ROOT not define. Please define COCOS_CONSOLE_ROOT in your environment!

**** Build Finished ****

.bash_profile

Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x

export COCOS_CONSOLE_ROOT=/Users/wyk/Documents/develop/cocos2d-x-3.5/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH

Add environment variable COCOS_FRAMEWORKS for cocos2d-x

export COCOS_FRAMEWORKS=/Applications/Cocos/frameworks
export PATH=$COCOS_FRAMEWORKS:$PATH

Add environment variable ANT_ROOT for cocos2d-x

export ANT_ROOT=/Applications/Cocos/tools/ant/bin
export PATH=$ANT_ROOT:$PATH

export ANDROID_SDK_ROOT=/Users/wyk/Documents/develop/Android/adt-bundle-mac/sdk
export PATH=$ANDROID_SDK_ROOT:$PATH
export NDK_ROOT=/Users/wyk/Documents/develop/Android/android-ndk-r8d
export PATH=$NDK_ROOT:$PATH

Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x

export COCOS_TEMPLATES_ROOT=/Users/wyk/Documents/develop/cocos2d-x-3.5/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH

build_native.py

#!/usr/bin/python

build_native.py

Build native codes

Please use cocos console instead

import sys
import os, os.path
import shutil
from optparse import OptionParser

def build(build_mode):

current_dir = os.path.dirname(os.path.realpath(__file__))
cocos_root = os.path.join(current_dir, "../cocos2d")


app_android_root = os.path.join(current_dir, "../")

if build_mode is None:
   build_mode = 'debug'
elif build_mode != 'release':
    build_mode = 'debug'

try: COCOS_CONSOLE_ROOT
except Exception:

print “COCOS_CONSOLE_ROOT not define. Please define COCOS_CONSOLE_ROOT in your environment!”
sys.exit(1)
command = '%s/cocos compile -p android -s %s -m s' (COCOS_CONSOLE_ROOT, app_android_root, build_mode)

command = 'cocos compile -p android -s %s -m s' (app_android_root, build_mode)

if os.system(command) != 0:
    raise Exception("Build dynamic library for project  " + app_android_root + " ] fails!")

-------------- main --------------

if name == ‘main’:

parser = OptionParser()
parser.add_option("-n", "--ndk", dest="ndk_build_param", help='it is not used', action="append")
parser.add_option("-p", "--platform", dest="android_platform", 
help='it is not used')
parser.add_option("-b", "--build", dest="build_mode", 
help='the build mode for java project,debug or release.Get more information,please refer to http://developer.android.com/tools/building/building-cmdline.html')
(opts, args) = parser.parse_args()

print "Please use cocos console instead.\n"

build(opts.build_mode)

3.6 一个鸟样

已经更新了,你再试试看。

现在再试试看。

你直接上传个完整文件不成吗

现在确实可以了,感谢版主。

3.5 3.6里面build_native.py里面有一行是这样的:
command = ‘cocos compile -p android -s %s -m s' (app_android_root, build_mode)
我把它改成了:
COCOS_CONSOLE_ROOT = os.environ’COCOS_CONSOLE_ROOT’]
command = '%s/cocos compile -p android -s %s -m s' (COCOS_CONSOLE_ROOT, app_android_root, build_mode)

我想問為什么我的項目文件沒錯,項目總有個叉!用的V3.5版。。。

你导入工程完,有再导入其他包吗?这步做了没?

有啊,导了cocos2d-xV3.5里的…android->…java里的

截图,截图…错误的截图 :7: :7:

好的,要今晚才截到…