【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
2013-04-23 17:56
1261 查看
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) CCString* pstrFileContent = CCString::createWithContentsOfFile("himi.lua"); if (pstrFileContent) { pEngine->executeString(pstrFileContent->getCString()); } #else std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("himi.lua"); pEngine->addSearchPath(path.substr(0, path.find_last_of("/")).c_str()); pEngine->executeScriptFile(path.c_str()); #endif <em id="__mceDel"> </em>
本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi )
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua-game/1368.html
☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!
对于跨平台整合,Himi已经写了1.x 与 2.x 的了,还不知道如何整合的请移步到【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.x版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!)本篇只是解决在整合cocos2dx-lua项目会出现的几个问题的方法。首先需要说明的是Himi使用的Cocos2dx Version : Cocos2dx 2.1.2 hotfix 第一:关于 get data from file(xxx.lua) failed/can not get file data of xxx.lua 这个问题,如下图:
此问题的原因是由于你自定义目录的原因造成的,将到目录,那么不得不说明下,在xcode中有两种颜色的文件夹,第一种 *** 和 绿色 ***文件夹:不带路径,直接添加到根目录的文件夹,也就是说没有文件夹的意思,只是将文件添加项目中了。 绿色文件夹:真正的将文件夹添加进来,其文件夹中的每个文件带有路径。如a/a.lua,是将文件夹整个添加到项目的根目录可能还有童鞋不是很明白上面的两种颜色的文件夹的意思,下面举个例子:例如我们将一个ios项目进行打包,此ios项目的Resources添加一个叫dir的文件夹,其中dir中包括两个lua文件a.lua b.lua 那么此时将dir文件夹添加进项目我们xcode项目中,肯定需要右键Resources文件夹“Add Files to xxx(项目名)”,然后在新窗口中选择我们需要添加的文件夹,如下图:
需要注意的是在下方有一个选项:Folders :1. Create groups for any added folders: 默认选项,将文件夹创建成一个groups形式添加2. Create folder references for any added folders : 引用创建文件夹进行添加 使用第一种形式进行添加的文件夹是***,第二种形式添加的文件夹是绿色那么如果我们采用第一种形式将dir文件夹加入项目进行打包,那么解压xx.ipa后可以发现这个dir文件夹不存在的,并且dir文件夹中的文件全部都默认放在项目根目录中。反之 ,如果我们采用第二种形式添加,那么打包后的项目.ipa解压后会看到dir文件。不知道这么说大家有没有理解,还不理解的童鞋请自行打包测试观察!需要注意的是!使用ndk 编译cocos2dx-lua项目时,默认把项目下的Resources 所有文件夹和文件都copy到android项目的assets目录下!下面开始讲解为什么出现 get data from file(xxx.lua) failed/can not get file data of xxx.lua 其实这个问题是android加载运行lua文件时找不到这个文件,说白了就是路径不对!举例,如果你有一个添加了一个lua文件夹,其中包含一个***的himi.lua脚本文件夹,当你执行时,代码一般如下:
童鞋们想一想,如上代码中如果是ios平台获取himi.lua完整路径是不是就是根目录下,因为这个脚本上一层lua文件夹是个***文件夹!那么在ios上执行运行肯定没有任何问题。 但是!如果你将此段代码直接编译android运行肯定出现找不到himi.lua文件的问题,原因是你应该加上路径,修改如上一段代码如下:
此问题是因为lua模板是没有此类的,所以我们修改如下文件:找到你整合的android项目目录下的jni/hellocpp/main.cpp文件,将#include “HelloWorldScene.h” 修改为: #include “cocos2d.h” ok,再编译即可。 第三:类第一个问题,编译时出现 CCLuaEngine.h: No such file 问题,如下图:
此问题需要修改你整合android项目下的jni/Android.mk 文件,如下:首先删除 ../../Classes/HelloWorldScene.cpp然后在 LOCAL_WHOLE_STATIC_LIBRARIES 后添加 cocos_lua_static 库最后添加 $(call import-module,scripting/lua/proj.android/jni)大家可以参考引擎示例中的lua示例下的 jni/Android.mk 配置即可。其中还添加物理引擎box2d等库等 第四:Eclipse导入Android项目报错 Cocos2dxActivity cannot be resolved to a type 或 The Improt org.cocos2dx.lib cannot be resolved 问题,如下图:
这种问题是Build Path缺少文件的link,我们配置下即可,首先右键项目然后选择Properties,然后选择“Java Build Path”,在 Source 栏目中点击“Link Source” ,如下图:
然后会出现一个新窗口:Linked folder location:选择link的文件,其路径指向cocos2dx引擎目录的cocos2d-2.1rc0-x-2.1.2-hotfix/cocos2dx/platform/android/java/src 目录即可! Folder name :这里默认是src,如果报错,我们自定义个名字即可。设置完成后一路finish或OK保存返回。
相关文章推荐
- 【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed以及路径等问题
- 添加文件【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
- 【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
- 【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题 .
- 【COCOS2DX-LUA 脚本开发之十三】解决Cocos2dx-Lua编译到Android找不到CCLuaEngine、HelloWorld或出现get data from file(xxx.lua
- 编译类【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类编译到ANDROID运行黑屏的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义cpp类通过tolua++ binding LuaCocos2d后编译到Android运行黑屏(没有调用自定义cpp类)的问题!
- 【游戏开发备注之一】关于Cocos2dx_v1.x版本iphone与Android运行出现图片白块、添加GameCenter报错问题及编译Android闪退的解决办法&&CCLOG与CClog的区别
- cocos2dx3.4 new Lua项目后编译黑屏问题的解决
- 如何解决xcode里开发cocos2dx修改lua脚本后不刷新的问题
- 如何解决在java开发中java代码和jsp页面中出现路径因为项目名称的变化(也就是应用名)的问题?
- 怎样解决xcode里开发cocos2dx改动lua脚本后不刷新的问题
- 如何解决xcode5里开发cocos2dx修改lua脚本后不刷新的问题
- 关于Android 出现65536,导致项目无法正常编译问题的解决
- Android开发中遇到的问题(五)——Eclipse导入Android项目出现"Invalid project description overlaps the location of another project"错误的解决办法
- 【游戏开发备注之一】解决Cocos2dx_v1.x版本图片白块,编译Android闪退等问题 推荐
- Qt[5.4]开发Android[安卓]Quick/QML Extension[扩展]库[.so]工程[项目]编译问题及解决办法