cocos2dx android 环境报错 记录

原创 2015年07月09日 13:43:44

最近 在 给 公司 做 一些 shader 特效 的 demo,所以 移植到 android 环境下 看效果,在 移植 过程中 遇到 一些 错误,希望 作为 备忘录  以及 供其他 网友 参考。

1.cocos2d-x发生undefined reference to `XX'错误

解决方案:cocos2dx 增加 自定义类,在 android 环境 编译 ,需要 在 安卓 工程目录下的  /jni/Android.mk 里 添加 自定义类的 目录

参考网址:http://blog.csdn.net/kafeidev/article/details/9157895

还有据说 是 一劳永逸的 办法: http://blog.csdn.net/gf771115/article/details/34414449(没试过)


2.'nullptr' was not declared in this scope错误

解决方案:这是由于 ndk 不支持 c++ 11,所以 需要 将 其 改 为 Null


3.max is not declared in thisscope 

解决方案: 好像 没有 max 函数 ,#include <cmath> 然后 使用 fmax 就ok 了


4. shader 报错,在 vs 里 不报错,在 eclipse 里 编译 报错。。。

之前 错误代码:

<pre name="code" class="cpp">//varying vec4        v_fragmentColor;
varying vec2        v_texCoord;
uniform	float		u_radius;
uniform vec2 		u_touchPos;
uniform vec2		u_bgSize;
uniform sampler2D 	CC_Texture0;

int isInCircle(){
  vec2 pos = u_bgSize * v_texCoord;
  float dis = distance(pos,u_touchPos);
  if(dis >= u_radius || u_radius == 0)
	return 1;
  else
	return 0;		
}

void main()
{
    vec4 texColor   = texture2D(CC_Texture0, v_texCoord);
	int isIn 		= isInCircle();
	gl_FragColor    =  texColor * isIn;
}



主要 错误 原因 是 shader 是 强类型操作,不支持 不同类型  在一起 运算(包括 判等)

错误 主要 表现在 

1.  isIncircle 函数,返回 int 结果 却与 浮点类型的 texColor进行 操作

2.  isIncircle 函数内部,,  if(dis >= u_radius || u_radius == 0) 这一句,u_radius 是 一个 float 类型,结果 却 与  整形 值0 进行判等


下面 贴出 我修改过的代码:

//varying vec4        v_fragmentColor;
varying vec2        v_texCoord;
uniform	float		u_radius;
uniform vec2 		u_touchPos;
uniform vec2		u_bgSize;
uniform sampler2D 	CC_Texture0;

float isInCircle(){
  vec2 pos = u_bgSize * v_texCoord;
  float dis = distance(pos,u_touchPos);
  if(dis >= u_radius || u_radius == 0.0)
	return 1.0;
  else
	return 0.0;		
}

void main()
{
    vec4 texColor   = texture2D(CC_Texture0, v_texCoord);
	float isIn 		= isInCircle();
	gl_FragColor    =  texColor * isIn;
}

再次 鄙视一下 WINDOWS 平台,真 坑爹。。。。


5.cocos2dx 的 分辨率 模式 总是 让人 很蛋疼。。总会 出 各种 坐标 问题

这点 可能 是我 自己的 原因,对 cocos2dx 的 设计分辨率 了解 不清。

其实 这 跟 自己 不懂 coocs2dx 底层 原理 有 很大的 关系。

幸好 现在 公司 项目 要 用到openGl,正好 可以 恶补一下。

cocos2dx 3.0rc0 android 运行报错

第一次写文章,以前都是看别人的,呵呵。这次也把自己遇到的问题,写在博客。 最近在用cocos2dx 开发,使用最新版本cocos2dx 3.0rc0 。遇到了如下问题, 以下为转载...

【游戏开发备注之一】关于Cocos2dx_v1.x版本iphone与Android运行出现图片白块、添加GameCenter报错问题及编译Android闪退的解决办法&&CCLOG与CClog的区别

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/game-detail/1035.html   ...

搭建Android平台cocos2dx开发环境

  • 2014年04月28日 18:26
  • 2.88MB
  • 下载

cocos2dx Android环境搭配

  • 2014年12月14日 22:29
  • 834KB
  • 下载

关于cocos2dx 3.0升级崩溃报错(unable to load native library) 和(Fatal signal 11 (SIGSEGV) at 0x00000000)

最近一直在Windows平台开发cocos-2dx游戏,期间做了一次引擎升级,升级到了3.0正式版本。Windows平台上表现很正常,没有出现什么问题。 上周五准备发布一个安卓包,编译很轻松的就过了,...

COCOS2DX 在vs上编译.cpp文件报错 error C2065: “”: 未声明的标识符

对于我这个新手渣渣来说,这是血史啊,导入人家工程,创建场景都报错,简直疯了, 就这几行错误的代码: #include "StartScene.h" USING_NS_CC; usi...

关于加载cocos2dx动画问题,跳转页面后回来不显示,报错找不到资源

cocos2d: Cann't find CCSpriteFrame with elf3.png. Please check your .plist file cocos2d: Cann't find...

cocos2dx在安卓下编译报错error1:libcocos2dcpp.so 无法生成

一、首先第一点要确定自己选择的 NDK 版本是否存在问题,是否与项目所需匹配 ,正常编译过程会自动选择默认的NDK 版本,但是这也会导致了libcocos2dcpp.so 库文件无法成功生成,  更改...

cocos2dx android 打包环境配置 安装包下载

安装包 所需要的安装包如下: Cocos2d-x 3.4,地址 http://cn.cocos2d-x.org/download#anchor2。其他安装包百度下载网盘链接:http://pan...

Cocos2dx Android真机环境使用Sqlite数据库

1. 下载Sqlite源码 Cocos2dx官方源码包里面已经提供了sqlite3头文件和相关库文件,考虑到Android环境的差异性,故最好使用sqlite3源码进行编译。 Sqlite3源码下载地...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2dx android 环境报错 记录
举报原因:
原因补充:

(最多只允许输入30个字)