cocos2dx编译打包apk报错

编译打包apk时,使用了如下命令
cocos compile -p android --ap android-20
结果编译器console提示如下
proj.android' 工程的 Android 目标平台版本应该大于等于 23,但是指定的值为 20。


于是按照到网上去搜相关解决办法,结果搜到了一个对于新手来说权威而又无奈的答案,如下:

原因build_native.py需要的环境变量没设置好,加上:ANDROID_SDK_ROOT 值为 e:\adt-bundle-windows-x86_64-2014\sdk 就可以了。

当我打开.py文件后发现根本没有类似的语句可以参考,上网搜了一下,可能是这个问题对于高手太low了吧,居然没有人问到这个问题。

于是采取迂回路线:将安卓版本号指定为23,

使用如下命令:

cocos compile -p android --ap android-23

结果又报错,仔细观察发现这个错误似曾相识,没错,就是因为恰恰是API-23恰好不再支持所需要的那几个类,尴尬,于是按照网上的教程引入包,再添加依赖。

-compile:
    [javac] Compiling 36 source files to D:\client-whmj\cocos2d\cocos\platform\android\java\bin\classes
    [javac] 警告: [options] 源值1.5已过时, 将在未来所有发行版中删除
    [javac] 警告: [options] 目标值1.5已过时, 将在未来所有发行版中删除
    [javac] 警告: [options] 要隐藏有关已过时选项的警告, 请使用 -Xlint:-options。
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:9: 错误: 程序包org.apache.http不存在
    [javac] import org.apache.http.Header;
    [javac]                       ^
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:10: 错误: 程序包org.apache.http.message不存在
    [javac] import org.apache.http.message.BasicHeader;
    [javac]                               ^
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:47: 错误: 找不到符号
    [javac]     public void onFailure(int i, Header[] headers, byte[] errorResponse, Throwable throwable) {
    [javac]                                  ^
    [javac]   符号:   类 Header
    [javac]   位置: 类 DataTaskHandler
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:57: 错误: 找不到符号
    [javac]     public void onSuccess(int i, Header[] headers, byte[] binaryData) {
    [javac]                                  ^
    [javac]   符号:   类 Header
    [javac]   位置: 类 DataTaskHandler
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:109: 错误: 找不到符号
    [javac]     public void onFailure(int i, Header[] headers, Throwable throwable, File file) {
    [javac]                                  ^
    [javac]   符号:   类 Header
    [javac]   位置: 类 FileTaskHandler
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:119: 错误: 找不到符号
    [javac]     public void onSuccess(int i, Header[] headers, File file) {
    [javac]                                  ^
    [javac]   符号:   类 Header
    [javac]   位置: 类 FileTaskHandler
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:255: 错误: 找不到符号
    [javac]                     Header[] headers = null;
    [javac]                     ^
    [javac]   符号: 类 Header
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:259: 错误: 找不到符号
    [javac]                         List<Header> list = new ArrayList<Header>();
    [javac]                              ^
    [javac]   符号: 类 Header
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:259: 错误: 找不到符号
    [javac]                         List<Header> list = new ArrayList<Header>();
    [javac]                                                           ^
    [javac]   符号: 类 Header
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:260: 错误: 找不到符号
    [javac]                         list.add(new BasicHeader("Range", "bytes=" + fileLen + "-"));
    [javac]                                      ^
    [javac]   符号: 类 BasicHeader
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:261: 错误: 找不到符号
    [javac]                         headers = list.toArray(new Header[list.size()]);
    [javac]                                                    ^
    [javac]   符号: 类 Header
    [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:263: 错误: 无法访问HttpEntity
    [javac]                     task.handle = downloader._httpClient.get(Cocos2dxHelper.getActivity(), url, headers, null, task.handler);
    [javac]                                                         ^
    [javac]   找不到org.apache.http.HttpEntity的类文件
    [javac] 注: 某些输入文件使用或覆盖了已过时的 API。
    [javac] 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
    [javac] 注: D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java使用了未经检查或不安全的操作。
    [javac] 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
    [javac] 12 个错误
    [javac] 3 个警告

BUILD FAILED
D:\AndroidInEclipse\android-sdk\tools\ant\build.xml:597: The following error occurred while executing this line:
D:\AndroidInEclipse\android-sdk\tools\ant\build.xml:716: The following error occurred while executing this line:
D:\AndroidInEclipse\android-sdk\tools\ant\build.xml:730: Compile failed; see the compiler error output for details.

Total time: 3 seconds
执行命令出错,返回值:1。


结果还是有错。搜索了很多这方面的问题,发现很多人在说环境变量的问题。想起来之前改动过SDK中的文件,于是重装了SDK,另外检查了环境变量,把所有path中的与Cocos相关的路径都更改为了直接路径(即没有使用任何引用)。第二天再次编译的时候,指定Android-20的时候,果然没再报错。


未完待更


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值