cocos2d-x简明配置

很多初学者对cocos2d-x的配置感到很繁琐,这里,我来慢慢向你阐述,跟着做就好了,嘿嘿。

先注明一下:以下路径都不要有空格

(一)下载

1)下载ADT

http://developer.android.com/sdk/index.html,到这里下载android ADT吧,然后解压就行。尝试把里面的eclipse运行起来。如果运行失败,一般都是没有安装java SDK,到这里http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen下一个吧。

2)下载cygwin

http://cygwin.com/install.html,到这里下载cygwin的setup.exe,然后运行setup.exe,安装cygwin,这个网上有很多详细讲解,这里就不罗嗦了。

3)下载NDK

http://developer.android.com/tools/sdk/ndk/index.html,这里,到这里下载NDK,下载后解压出来就行了。

4)下载cocos2d-x

http://www.cocos2d-x.org/,到这里下载cocos2d-x,下载后解压

(二)快速配置cocos2d-x

好了,要下载的东西都下载完了,接下来就是配置。

1、cygwin中配置NDK

到cygwin/home/当前用户名/  这个目录下,在.bash_profile最后添加NDK路径,并导出,如下

NDK_ROOT=/cygdrive/D/ProgramTool/android-ndk-r83-windows-x86/android-ndk-r8e

export NDK_ROOT

这里有几点要注意的:

首先,这里是用linux的路径规则,所以要使用“/”。

其次,对于windows下某一个盘符,它的实际路径是/cygdrive/盘符名(如C,D,E)。

最后,在这里填写的路径下,应该包含有ndk-build.cmd的文件。

2、配置cocos2d-x的android工程开发

进入cocos2d-x的解压目录,找到文件create-android-project.bat,打开文件,配置以下几点:

1、找到开头为 set _CYGBIN=  那一行,将其改为 set _CYGBIN=E:\cygwin\bin

2、找到开头为 set _ANDROIDTOOLS=  那一行,将其改为 set _ANDROIDTOOLS=D:\ProgramTool\Android\adt-bundle-windows-x86-20130219\sdk\tools

3、找到开头为 set _NDKROOT= 那一行,将其改为 set _NDKROOT=D:\ProgramTool\android-ndk-r8e-windows-x86\android-ndk-r8e

将以上3个地方修改为你实际安装的目录就可以了。

修改完之后,你就可以用create-android-project.bat去创建你的android工程了,赶紧试试吧。

(三)报错了,怎么办?

1、cygwin 报错,': not a valid identifier
1)检查NDK_ROOT路径是否正确

2)在export NDK_ROOT之后必须有一个空行

以下是我用python实现的一个脚本,它可以帮助你快速配置cocos2d-x,只要运行一下就可以了,输入以上几个解压出来的工作目录路径就可以了。效果如下:

当你看到配置完成时,就OK了。代码我也贴出来了,有兴趣的朋友,慢慢看吧,有什么BUG,欢迎提点哈。

import os
import getpass

def pause():
    print("按任意键继续...")
    input()
    exit()
    
def getInstallDir(name):
    while True:
        print("请输入", name, "的安装目录:")
        dir = input()
        if str(dir).find(' ', 0, -1) != -1:
            print(name, "目录中有空格,请改正")
        else:
            return dir

def getConfigFile():
    #android-SDK的安装目录
    android = getInstallDir("android-sdk")
    tools = android + os.path.sep + "tools"
    if os.path.isdir(tools) == False:
        print("目录", tools, "不存在,请重新安装android sdk")
        pause()
        
    #cygwin的安装目录
    cygwin = getInstallDir("cygwin")
    bash_profile = cygwin + os.path.sep + os.path.sep + "home" + os.path.sep + getpass.getuser() + os.path.sep + ".bash_profile"
    if os.path.isfile(bash_profile) == False:
        print("文件", bash_profile, "不存在,请重新安装cygwin")
        pause()

    #NDK的安装目录
    NDK = getInstallDir("NDK")
    ndkbuild = NDK + os.path.sep + "ndk-build.cmd"
    if os.path.isfile(ndkbuild) == False:
        print("文件", ndkbuild, "不存在,请重新安装NDK")
        pause()

    #coco的安装目录
    coco = getInstallDir("cocos2d-x")
    name = ""
    bFindIt = False
    for name in os.listdir(coco):
        if name.find("cocos2d-", 0, -1) != -1:
            bFindIt = True
            break
    androidbat = coco + os.path.sep + name + os.path.sep + "create-android-project.bat"
    if bFindIt == False:
        print("文件", androidbat, "不存在,请重新安装cocos2d-x")
        pause()

    return tools, cygwin, bash_profile, NDK, androidbat

def doConfig(androidTools, cygwin, bash_file, NDK, androidbat):
    try: #配置coco的android工程
        file = open(androidbat, "r+")
        filecontent = file.readlines()
        file.seek(0, 0)
        for line in filecontent:
            if line.find("set _CYGBIN=") != -1:
                file.write("set _CYGBIN=" + cygwin + os.path.sep + "bin\n")
            elif line.find("set _ANDROIDTOOLS=") != -1:
                file.write("set _ANDROIDTOOLS=" + androidTools + "\n")
            elif line.find("set _NDKROOT=") != -1:
                file.write("set _NDKROOT=" + NDK + "\n")
            else:
                file.write(line)
        file.close()
    except IOError as e:
        print(e)

    try:    #cygwin配置NDK路径
        file = open(bash_file, "a+")
        count = NDK.count("\\")
        newNDK = NDK.replace("\\", "/", count)
        newNDK = newNDK.replace(":", "", 1)
        file.write("\n")
        file.write("NDK_ROOT=/cygdrive/" + newNDK)
        file.write("\n")
        file.write("export NDK_ROOT\n")
        file.close()
    except IOError as e:
        print(e)

    return True
    
if __name__ == "__main__":
    androidTools, cygwin, bash_profile, NDK, androidbat = getConfigFile()
    if doConfig(androidTools, cygwin, bash_profile, NDK, androidbat) == True:
        print("配置完成,请按任意键继续...")
        input() 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值