环境:
Java-sdk 1.7
Python2.7
Cocos2dx-3.10
Lua5.1
VC++2005-2013
Ant 1.10.1
android-ndk-r10d
1.错误截图
C++编译完成,生成apk包出错
2.解决过程
2.1最初怀疑磁盘问题,格式化磁盘/修复磁盘坏道也没用,尝试几台机器有同样的错误,排除磁盘问题。
2.2 用cocos命令行手工执行编译,编译成功,推测可能是Python执行cmd命令的BUG
2.3 找到build_android.py查看py执行cmd命令生成apk的行
修改执行,还是报一样的卷标错误,再想可能是py版本问题,换成PY2.7.14,不报卷标错误了,但是新的错误出现了,ant错误
2.4排查ant错误
环境检查:
ANDROID_SDK
C:\Android\sdk\adt\sdk\platforms;C:\Android\sdk\adt\sdk\platform-tools;C:\Android\sdk\adt\sdk\tools
ANDROID_SDK_ROOT
C:\Android\sdk\adt\sdk
ANT_HOME
C:/Android/ant
JAVA_HOME
C:/Android/jdk1.7.0_80
CLASSPATH
.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
网上查了很多资料,
典型的解决办法有:
1.
ANT_HOME=C:/Android/ant/bin
PATH=%JAVA_HOME%\bin;%ANT_HOME%;
Cmd 输入ant-h报ANT_HOME没有设置
2.
ANT_HOME=C:/Android/ant
PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;
Cmd 输入ant-h报java的main方法异常
以上2种方法有很多人采用,说能顺利解决,
最后猜测ant调用了它lib下面的jar包,在path里面引用一下
%JAVA_HOME%\bin;%ANT_HOME%\lib;%ANT_HOME%\bin;
Cmd输入ant -h 正常了
2.5再一次编译生成apk
2.6 补充
也可以把ant目录下的lib和bin目录下内容全部copy到ant目录下
path=%JAVA_HOME%\bin;%ANT_HOME%;=
path不需要写%ANT_HOME%\lib;%ANT_HOME%\bin 了