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
list = new ArrayList
(); [javac] ^ [javac] 符号: 类 Header [javac] D:\client-whmj\cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxDownloader.java:259: 错误: 找不到符号 [javac] List
list = new ArrayList
(); [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的时候,果然没再报错。


未完待更


你可能感兴趣的:(Cocos2dx)