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/下面












