发布经常会遇到各种各样的问题,发布失败会返回一些值,但是这些值并不是重点,要看发布过程中产生的日志才能真正找到问题所在。我在发布自己做的第一个游戏的时候,遇到了各种各样的问题,不过都一一解决,下面是问题的一些解决方法。
一、发布之前的必要准备
1.进入
G:cocosdataCocosCocosProjectsNoOneDies_stproj.androidjni路径
打开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 oolsAndroid-SDK-2 oolsantuild.xml:716: The following error occurred while executing this line:
G:cocoshome oolsAndroid-SDK-2 oolsantuild.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 FilesJavajre1.8.0_101"
Total time: 10 seconds
应该是之前我安装其他的软件(MyEclipse)的时候,我的JDK的环境变量被改变了,解决方法是
打开cocos客户端--右上角偏好设置--平台--一键配置--只选择JDK就可以了,安装成功后重启客户端,重新发布就不会有这个问题了,不过我这样修改了JDK的路径,不知道其他软件会不会受到影响(MyEclipse之类),
如果有影响的话,可能又要重新设置那个软件的JDK路径
4.第四次发布失败日志说我的资源文件有问题,原来是我的一个图片的名字取得太奇怪,很多数字和空格,而呢个图片资源其实也没有用到
解决方法就是我删除掉那个坏掉的图片文件就好了