CocosCreator工程打包成aar

为什么要打包成AAR

  1. 减少接入SDK的工作量
  2. 便于扩展渠道
  3. 与外部对接更安全,无需提供源码

步骤

构建

  1. 打开CocosCreator,打开构建面板,选择Android平台,配置好Target Api Level即可,如下图

image

  1. 构建完后,用AndroidStudio打开工程,目录如下,我们只需要关注app目录

image

修改Module的build.gradle

build.gradle至少有两个,一个是Project的gradle文件,其他的都是Module的gradle文件,我们此次要修改的,就是app目录下的。

  1. 将工程变成模块,当然可以给个开关
1
2
3
4
5
6
7
// 开关
boolean isLib = false
if (isLib) {
apply plugin: 'com.android.library'
} else {
apply plugin: 'com.android.application'
}
  1. 去掉applicationId
1
2
3
if (!isLib) {
applicationId "org.cocos2d.demo"
}
  1. 取消资源压缩,将shrinkResources true语句删除

  2. 拷贝资源代码修改

1
2
3
4
5
6
7
8
9
if (isLib) {
android.libraryVariants.all { variant ->
// 直接拷贝原有的代码块
}
} else {
android.applicationVariants.all { variant ->
// 直接拷贝原有的代码块
}
}

至此,build.gradle修改完毕

打包

  1. 找到Gradle栏目中对应的module依次查找到Tasks——>build——>assembleRelease,点击assembleRelease

image

  1. 执行结束,在module目录下的build/outputs/aar/下找到生成的aar文件即可。

image

  1. 因为工程本身还依赖了libcocos2dx,所以该模块也需要打包成aar,按照上一步选择libcocos2dx模块执行assembleRelease

image

如果主工程已经附带了引擎自带的jar包,可以修改如下语句,请注意,如果是jsb-link模式,这样修改,是修改的全局的,在其它工程记得修改回来。

1
2
3
4
dependencies {
//implementation fileTree(include: ['*.jar'], dir: '../java/libs')
compileOnly fileTree(include: ['*.jar'], dir: '../java/libs')
}

该aar文件如果是jsb-link模式,则在引擎目录下,否则在工程目录下的frameworks/cocos2d-x/cocos/platform/android/libcocos2dx/build/outputs/aar

image

最后,将两个aar提供给需求方,即可。

END