cocos creator 2.4.x支持Android 16K
2025-09-27 本文已影响0人
lucky_life
主要修改
- android工程下build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:8.10.1'
}
- 升级gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
- app下的build.gradle 主要升级buildToolsVersion,compileSdk,targetSdkVersion
compileSdk 35
buildToolsVersion "35.0.0"
defaultConfig {
applicationId "***"
minSdkVersion 24
targetSdkVersion 35
versionCode 1
versionName 1.0
multiDexEnabled true
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86', 'x86_64'
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
我们工程so文件都是编译好直接引用的,不是每次重新通过ndk编译
-升级ndk到28以上,我用的28.2.13676358,ndk直接重新编译so
PROJECT_ROOT=$(cd `dirname $0`; pwd)
echo $PROJECT_ROOT
COCOS_ROOT=$PROJECT_ROOT/../../../../../custom-creator/2.4.10/cocos2d-x
NDK_BUILD_PATH=Android/sdk/ndk/28.2.13676358/ndk-build #ndk_build路径
NDK_DEBUG=0 #debug标志
# sudo arch -x86_64 $NDK_BUILD_PATH clean -C $PROJECT_ROOT NDK_MODULE_PATH=$COCOS_ROOT:$COCOS_ROOT/cocos:$COCOS_ROOT/external:
sudo arch -x86_64 $NDK_BUILD_PATH NDK_DEBUG=$NDK_DEBUG -C $PROJECT_ROOT NDK_MODULE_PATH=$COCOS_ROOT:$COCOS_ROOT/cocos:$COCOS_ROOT/external:
-
由于项目自己升级了v8引擎,参考官方提供的修改https://github.com/cocos/cocos-engine-external/pull/501到自己项目就可以了,更新之后重新编译
-
自身项目引用的SDK需要到SDK官网去更新,如我们用到的fmod等
-
验证https://cs.android.com/android/platform/superproject/main/+/main:system/extras/tools/check_elf_alignment.sh将sh拷贝下来,用脚本跑一下打包出来的apk,如果 arm64-v8a 或 x86_64 共享库都是 ALIGNED,表示已经适配成功了,如果有部分so是UNALIGNED,需要更新这些so
-
测试,使用android studio新建16kb的虚拟设备,参考https://developer.android.com/guide/practices/page-sizes,最后测试下来这个虚拟设备好像不支持ASTC
tips:如果在cocos库中引入了其他so,替换了之后把ndk缓存删了再重新编译
以上都是在mac m系列xing piao