Cocos Creator2.4.x版本升级安卓16kb保姆级教程

16kb的故事(Google16kb的新政策从2025年11月1日起所有新上架和更新的应用都必须支持16kb)也有听说,通过我多年的经验百度了一下看到种说法将AndroidSutdio更新为最新版本打开apk/aab看lib下面的so文件Alignment这一栏没显示或者显示了16KB的话就是没问题的。

aab构建出来后提审到后台又遇到了下面这个问题,提示我的包不支持16kb

TIP

准备实操的朋友一定要把步骤走完哦,欢迎理性讨论。

检查16KB支持状态脚本

查看了官方文档拿到了sh脚本来检查包体是否支持16KB,发现官方的sh只能检查apk并不能检查aab,于是我叫我好兄弟Cursor将这个sh脚本转换成python实现并支持检查aab文件。
脚本如下:
check_elf_alignment.py.zip (3.4 KB)
使用方法:

python3 check_elf_alignment.py xx.aab
python3 check_elf_alignment.py xx.apk

经过检查后发现我的aab确实不支持。

改造第一步升级NDK

经过查阅Google官方文档发现升级NDK为28及以上的构建会默认支持16KB,不低于28的则需要一步步去改造。

于是我下载了NDK28.2.13676358

再回到CocosCreator中将原生开发环境设置为刚才下载的ndk版本

到此可以先行构建一下安卓工程了

升级Android AGP

1、修改ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/build.gradle中的Android Gradle Plugin Version版本为8.10.1。

        classpath 'com.android.tools.build:gradle:8.10.1'

如下图:

2、修改ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle/wrapper/gradle-wrapper.properties中distributionUrl版本。

distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip

如下图:

修改其它gradle,升级sdk版本35、36都可以,其实我最近一直用的35

1、修改ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties中的内容。

PROP_BUILD_TOOLS_VERSION=36.0.0
PROP_COMPILE_SDK_VERSION=36
PROP_MIN_SDK_VERSION=23
PROP_TARGET_SDK_VERSION=36

如下图:

2、修改ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle中的内容。

ndkVersion '28.2.13676358'

如下图:

3、修改/Applications/Cocos/Creator/2.4.15/CocosCreator.app/Contents/Resources/cocos2d-x/cocos/platform/android/libcocos2dx/build.gradle中的内容。

    namespace "org.cocos2dx.lib"

    ndkVersion '28.2.13676358'

如下图:

4、修改ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/instantapp/build.gradle中的内容。

    namespace "org.cocos2dx.javascript"
    
    ndkVersion '28.2.13676358'

如下图:

修改JDK为21

Settings | Build, Execution, Deployment | Build Tools | Gradle中选择修改为21版本并点击应用。
如下图:

强制armeabi-v7a 16KB 对齐

ccc.proj/build/jsb-link/frameworks/runtime-src/proj.android-studio/jni/CocosAndroid.mk中添加内容。

# 修复 armeabi-v7a ELF 对齐问题,强制 16KB 对齐
LOCAL_LDFLAGS += -Wl,-z,max-page-size=16384

如下图:

Sync Now`完工

点击Sync Now后直接构建出包就可以了,现在构建的包就支持16kb了。

进阶使用

为了避免每次构建每个项目都需要重复修改,你可以将修改抽离到ccc.proj/build-templates/jsb-link/frameworks/runtime-src/proj.android-studio/下面

2赞

x86的架构有问题 你没说

没处理32位的,我们业务没覆盖

特来支持 :+1:

谢谢分享!收藏了