Coco2dx编译记录

1. 升级SDK

当我们升级cocos2d/cocos/platform/android/libcocos2dx的SDK版本的时候有可能会发生以下错误

.../Cocos2dxDownloader.java:9: error: package org.apache.http does not exist

这是因为在当Aandroid的SDK高于22的时候Apache的HttpClient已经被谷歌废弃掉了。

解决办法有2种:

  • /cocos2d/cocos/platform/android/libcocos2dx/build.gradle文件里面加入以下代码指定使用废弃的http安装包

    android {
        useLibrary 'org.apache.http.legacy'
    }
    
  • 手动将对应版本的SDK的http包文件android-sdk/platforms/android-28/optional/org.apache.http.legacy.jar复制到项目的/cocos2d/cocos/platform/android/java/libs目录下。

2. 升级gradle

我们在使用新的SDK的时候有时需要升级对应的gradle,例如我们使用新版本的Admob的时候

compile 'com.google.firebase:firebase-ads:15.0.0'

必须使用新的gradle才能找到对应的包,在proj.android-studio/gradle/wrapper/gradle-wrapper.propertiesdistributionUrl字段设置使用的gradle版本。
然后在proj.android-studio/build.gradle里面设置Gradle插件的的版本。

在虚拟机里面升级gradle后有时候会导致编译失败。在xp系统里面无法使用新的gradle