发布经常会遇到各种各样的问题,发布失败会返回一些值,但是这些值并不是重点,要看发布过程中产生的日志才能真正找到问题所在。我在发布自己做的第一个游戏的时候,遇到了各种各样的问题,不过都一一解决,下面是问题的一些解决方法。

一、发布之前的必要准备

1.进入

G:\cocosdata\Cocos\CocosProjects\NoOneDies_st\proj.android\jni路径

打开Android.mk文件

在原来的几个cpp文件声明的基础上再加上自己定义的cpp文件名字

LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/Baby.cpp \
../../Classes/Block.cpp \
../../Classes/BlockGroup.cpp \
../../Classes/CuteFire.cpp \
../../Classes/Edge.cpp \
../../Classes/FallFire.cpp \
../../Classes/FireGroup.cpp \
../../Classes/GameController.cpp \
../../Classes/GameOverScene.cpp \
../../Classes/GameScene.cpp \
../../Classes/GroundFire.cpp \
../../Classes/HangBlock.cpp \
../../Classes/Hero.cpp \
../../Classes/Life.cpp \
../../Classes/QuestionOneScene.cpp \
../../Classes/QuestionThreeScene.cpp \
../../Classes/QuestionTwoScene.cpp \
../../Classes/ScoreAccount.cpp \
../../Classes/Sign.cpp \
../../Classes/SignGroup.cpp \
../../Classes/Smoke.cpp \
../../Classes/Star.cpp \
../../Classes/StartUpScene.cpp \
../../Classes/SuperPower.cpp \
../../Classes/UpFire.cpp \
../../Classes/WalkFire.cpp \
../../Classes/WaterGroup.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

2.删除classes中没有用到的cpp和.h文件,以及Android.mk文件没有用到的cpp文件声明

二、发布失败的原因和解决

1.第一次发布失败日志说我的GameScene.o文件有错误,我看了一下是多引用了一个没有用到的头文件。

删掉就好了

2.第二次发布失败日志说我的有一些警告被当成了错误,于是我百度了一下,还是打开Android.mk文件,在LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes语句下加上

APP_CFLAGS += -Wno-error=format-security

3.第三次发布失败日志说我的JDK路径有问题,没有找到相应的JDK

-compile:
BUILD FAILED
G:\cocoshome\tools\Android-SDK-2\tools\ant\build.xml:716: The following error occurred while executing this line:
G:\cocoshome\tools\Android-SDK-2\tools\ant\build.xml:730: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files\Java\jre1.8.0_101"
Total time: 10 seconds

应该是之前我安装其他的软件(MyEclipse)的时候,我的JDK的环境变量被改变了,解决方法是

打开cocos客户端--右上角偏好设置--平台--一键配置--只选择JDK就可以了,安装成功后重启客户端,重新发布就不会有这个问题了,不过我这样修改了JDK的路径,不知道其他软件会不会受到影响(MyEclipse之类),

如果有影响的话,可能又要重新设置那个软件的JDK路径

4.第四次发布失败日志说我的资源文件有问题,原来是我的一个图片的名字取得太奇怪,很多数字和空格,而呢个图片资源其实也没有用到

解决方法就是我删除掉那个坏掉的图片文件就好了

关于Cocos2d-x发布游戏的时候遇到的问题和解决的更多相关文章

  1. Cocos2D:塔防游戏制作之旅(十八)

    在Enemy.m的getDamaged:方法只给你添加如下1行(在if条件内): [theGame awardGold:200]; 现在运行游戏你将注意到你不能放置超出你资源金币的炮塔了.当然杀死敌人 ...

  2. 【Cocos2D研究院之游戏开发】

    http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发]   201211-19 Co ...

  3. 发布mvc遇到的HTTP错误 403.14-Forbidden解决办法

    发布mvc遇到的HTTP错误 403.14-Forbidden解决办法   <system.webServer>   <validationvalidateIntegratedMod ...

  4. Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法

    asp.net程序编写完成后,发布到IIS,经常出现的一个问题是连接不上Oracle数据库,具体表现为Oracle的本地NET服务配置成功:用 pl/sql 等工具也可以连接上数据库,但是通过浏览器中 ...

  5. Cocos2D:塔防游戏制作之旅(一)

    原文地址:http://www.raywenderlich.com/37701/how-to-make-a-tower-defense-game-tutorial 由Pablo Ruiz写的入门教程, ...

  6. Cocos2D:塔防游戏制作之旅(八)

    如果所有东西通过检查,则创建一个新炮塔,将它放置在基座上,然后添加到towers数组中. 注意:在方法最后的bridge语法需要做一些解释.你下载的初始项目已经为一 些文件打开ARC,但不是Cocos ...

  7. cocos2d 消除类游戏简单的算法 (一)

    1. 游戏视频演示 2.三消游戏我的理解 上面视频中的游戏.我做了2个星期时间,仅仅能算个简单Demo,还有bug.特效也差点儿没有.感觉三消游戏主要靠磨.越磨越精品. 市场上三消游戏已经超级多了.主 ...

  8. Cocos2D:塔防游戏制作之旅(十七)

    getHpDamage方法当敌人到达基地时被调用.你需要添加该方法到Enemy.m的update:方法中去,以便检查当敌人到达基地是会发生什么.幸运的是,你已经在之前的代码中实现这些了,你可以接着往下 ...

  9. Cocos2D:塔防游戏制作之旅(十六)

    编译运行你的app,放置一些炮塔在你的地图上吧!你将看到炮塔在敌人移动如攻击范围时如何立即开始攻击,并且敌人的血条将随着攻击不断减少知道它们被人道毁灭!胜利即将来临了! 哦!Okay,这里只有少数细节 ...

随机推荐

  1. linux内存回收机制

    无论计算机上有多少内存都是不够的,因而linux kernel需要回收一些很少使用的内存页面来保证系统持续有内存使用.页面回收的方式有页回写.页交换和页丢弃三种方式:如果一个很少使用的页的后备存储器是 ...

  2. Unix环境高级编程(十七)网络IPC套接字

    通过网络套接字可以使得不同计算机上运行的进程相互通信. 1.创建套接字 #include <sys/socket.h> Int socket( int domain, int type, ...

  3. Codeforces Round #263 (Div. 2) proC

    题目: C. Appleman and Toastman time limit per test 2 seconds memory limit per test 256 megabytes input ...

  4. python bs4 + requests4 简单爬虫

    参考链接: bs4和requests的使用:https://www.cnblogs.com/baojinjin/p/6819389.html 安装pip:https://blog.csdn.net/z ...

  5. for循环中的break与continue

    break: 跳出循环,执行for循环下面的语句.continue: 跳出本次循环,执行下次循环.

  6. Animator根运动清除刚体速率问题测试

    在根运动打开时,施加AddForce,速率在后面几帧被清0了: 没有打开根运动AddForce的情况: unity论坛看了下,似乎有人遇到这个问题,而且无解.只能受力状态下关闭根运动 Q:Im wor ...

  7. IP分片

    物理网络层一般要限制每次发送数据帧的最大长度.任何时候IP层接受到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU(最大传输单元:Maximum Transm ...

  8. 非常全的linux面试笔试题及答案

    一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点来标识.4. ...

  9. thread-local-allocation-buffers

    https://www.azul.com/files/Whats-inside-a-JVM-webinar-presentation.pdf https://www.zhihu.com/questio ...

  10. JVM总结篇

    Sun HotSpot VM,是JDK和Open JDK中自带的虚拟机,也是目前使用范围最广的Java虚拟机. JVM内存分布 程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号 ...