Quick3.5+cocos ide 1.2使用教程,增加android真机调试教程

最近研究了下这两个的组合,想必很多人也用过了。遇到了很多问题,不过其实自己稍微去研究下,就会发现,很容易就解决了。
废话不多说,下面开始说步骤:

1.下载quick3.5final+cocos ide1.2, 另外把cocos studio也下载了吧。

2.安装以上软件以后,打开cocos商店下载最新的cocos framework并安装,其它android ndk和sdk,java sdk没有的也自行下载解压就好,商店里都有。cocos framework里面带了python27和ant,一看便知。
都安装完以后,检查cocos ide设置,打开窗口-》首选项-》cocos

3.解压quick3.5final,找到templates\lua-template-default.settings里面的version.json,修改这个文件内容为如下:
{
“ideVersion”: “1.2.0”,
“templateVersion”: “2.0”,
“runtimeVersion”: “2.0”,
“engineVersion”: “cocos2d-x 3.5”
}

4.使用cocos2d console创建lua工程,这个文件在tools\cocos2d-console\bin\里面,叫cocos.bat(win平台)。不会创建的去网上搜教程,也可以dos下输入cocos -h看帮助文档。
注意:这一步创建的lua工程最好在某个盘的根目录,不然后面会出现编译路径太长导致编译失败的问题。
如:D:\Documents\Cocos2d\MyGame\frameworks\runtime-src\proj.android…/…/cocos2d-x/cocos/quick_libs/src/extra/luabinding/lua_cocos2dx_extension_nanovg_manual.cpp:385:1: fatal error: opening dependency file ./obj/local/armeabi/objs/extra_static/D_\Documents\Cocos2d\MyGame\frameworks\runtime-src\proj.android__/__/cocos2d-x/cocos/quick_libs/src/extra/luabinding/lua_cocos2dx_extension_nanovg_manual.o.d: No such file or directory
}

5.打开cocos ide1.2, 工程面板右键-》导入,选中导入cocos工程,找到你刚才创建的工程路径,导入。

6.编译,右键工程-》cocos工具-》为android打包apk(快捷栏也有这个按钮,自己找),如果第三步没有修改那个version文件,这一步是执行不了的,会出一个什么loop exception的问题,下面的步骤一看便知,不多说。这一步编译的时间会有点久,编译完就会打包好apk

7.6中打包好的apk可以在真机上测试,cocos ide还不清楚怎么运行apk。不过你可以构建一个win平台的模拟器用来调试。用cocos ide构建完模拟器需要将src和res文件夹手动拷贝到runtime/win32文件夹里,cocos ide不会自动拷贝,这是一个bug。当然你也可以直接用vs编译运行调试,教程自己查。

最后跟cocos项目组反应一个第4条中提到的路径过程导致编译失败的问题,希望能把路径弄的短一点,即使放到根目录,其实路径已经很长了,如果放到一个文件夹名字太长的文件夹里,编译就会失败,希望能够早日解决。
其实3.5相对于以前的版本好用了不少,而且cocos studio也比之前的好用多了。继续努力,开源的东西不容易!
后面有什么新的进展,我再更新这篇帖子。

续:
关于cocos ide1.2通过usb连接android真机调试代码
首先quick3.5编译出来的android模拟器版本是无法在真机上调试的,因为编译配置问题和文件缺失,可能是cocos项目组人手实在太不够了,没有做过这方面的测试,也可能是因为以后quick要合并到cocos家族里了吧。
下面将我自己的修改过程列举下来,希望对有用的人有所帮助。这种情况下,可以实现lua热更新,并且lua中的打印输出会显示在cocos ide的输出窗口中。
以下步骤都是在上面步骤都OK的情况下进行的。

1.首先拷贝CocosFramework\templates\cocos2d-x-3.5\lua-template-runtime\frameworks\runtime-src\Classes下所有文件替换quick-3.5\templates\lua-template-default\frameworks\runtime-src\Classes下面所有的文件。

2.打开quick-3.5\templates\lua-template-default\frameworks\runtime-src\Classes\AppDelegate.cpp文件,找到函数static int register_all_packages(),改为如下内容:
static int register_all_packages()
{
extern void package_quick_register();
package_quick_register();
return 0; //flag for packages manager
}

3.打开quick-3.5\templates\lua-template-default\frameworks\runtime-src\proj.android\jni\Android.mk
修改
LOCAL_SRC_FILES :=
…/…/Classes/AppDelegate.cpp
…/…/Classes/ide-support/SimpleConfigParser.cpp
hellolua/main.cpp

CocosFramework\templates\cocos2d-x-3.5\lua-template-runtime\frameworks\runtime-src\proj.android\jni\Android.mk中的

FILE_LIST := hellolua/main.cpp
FILE_LIST += (wildcard (LOCAL_PATH)/…/…/Classes/.cpp)
FILE_LIST += (wildcard (LOCAL_PATH)/…/…/Classes/ide-support/
.cpp)
FILE_LIST += (wildcard (LOCAL_PATH)/…/…/Classes/ide-support/*.c)
LOCAL_SRC_FILES := (FILE_LIST:(LOCAL_PATH)/=)

4.右键工程-》cocos工具-》构建自定义模拟器, 弹出窗口,下一步-》构建android模拟器-》生成。最后构建成功。

5.打开android手机usb调试,确保手机连接到wifi,并且电脑也连接在相同的wifi下。 usb连接手机到电脑,手机会提示“已连接USB调试”。

6.右键工程-》运行方式(或调试方式)-》运行配置(或调试配置),弹出运行配置窗口,选中cocosluabinding-》你的工程,选择Android ADB调试,模拟器路径里面已经自动选择好你第4步构建好的模拟器,点击应用,然后点击运行(或调试),开始运行程序。

以上内容都是对比quick3.5和cocosframework的文件做出的修改,其实cocosframework应该比quick3.5的代码内容新,至少在工程创建和运行时调试方面。
有兴趣的同学可以自己对比弄一下window平台模拟器的工程文件。

以我的理解,cocos3.5这个版本,在ide中创建的cocosframework的lua工程和quick3.5创建的工程没太大区别,区别就在于一个是预先编译好的静态库,一个完全需要自己编译所有代码(对于想修改引擎源代码的同学有用)。

多谢!正愁怎么用3.5

关于第六点 貌似可以设置 工作路径来解决

按照教程所讲的一齐都成功了,但是依旧还是老问题,想问问3.5quick的版本日志打印不能的问题如何解决,谢谢了

想问下,是cocos ide连真机测试的时候lua的print不起作用吗?win32模拟器运行的时候,console窗口是可以通过print打印日志的。
打包的apk我还没试过,我想应该也可以的。有空我会测试下。

感谢楼主热心分享
3.3版本刚接触Quick跟ide连tests都弄不出来
所以转js玩了
还没整合好的东西用起来真是头疼
官方的教程能有那么细就好了

我怎么找到不到CocosFramework\templates\cocos2d-x-3.5\lua-template-runtime这个文件夹呢??

官方没放进去,按照我后面续写的步骤就是添加runtime的代码的。

http://blog.k-res.net/archives/1833.html
这里貌似解决了

Cocos Framework 3.5 官网链接:
http://www.cocos2d-x.org/filedown/CocosFramework-v3.5.exe
http://www.cocos2d-x.org/filedown/CocosFramework-v3.5.pkg

3.5在商店已经消失了,坑爹。。。

竟然敢用cocos ide1.2写代码,不怕死。。
不过官方已废弃的工具。

导入了,调试时发现个bug, :278: attempt to call a nil value
这个要怎么解决

看看下面的续,添加了运行时代码就好了

按照教程的第7点编译生成执行文件设置为模拟器进行调试,会报错,也无法断点调试。请问哪位大神知道如何解决?

谢谢大神,终于可以调试了

我这个只是修改了android调试的工程文件和代码,win32下面的你还需要修改vs的工程文件,具体你对比cocosframework和quick3.5的win32工程文件看看,用beyond compare。

非常感谢。

不科学吧 难道quick以后更新都手动 官方版没做好开放下载干嘛

我其他都正常,也能正常运行,但是就是报这种编译错误,怎么解啊?

你看下是不是编码问题引起的,改成utf-8编码应该就好了。一般都是中文引起的