android.rar (2.6 MB) google 2025年8月30号之前要求开发者更新到 api35,gradle8.0以上,ndk25以上。我个人开发的游戏在google运营10年了你敢信,用的版本是cocos2d-x 3.5你敢信,本来以为这次苟不住了,但还是苟住了。
记录一下要改啥
1.
2.然后 gradle.properties 都改成 35
PROP_TARGET_SDK_VERSION=35
PROP_APP_ABI=armeabi-v7a:arm64-v8a
PROP_MIN_SDK_VERSION=21
PROP_BUILD_TYPE=ndk-build
android.useAndroidX=true
android.enableJetifier=true
PROP_COMPILE_SDK_VERSION=35
android.suppressUnsupportedCompileSdk=35
3./frameworks/cocos2d-x/external/android-specific/pvmp3dec/src/pvmp3_alias_reduction.cpp这里有报错,是什么类型转换问题
*used_freq_lines = fxp_mul32_Q32(*used_freq_lines << 16, (int32)(0x7FFFFFFF / (float)18 - 1.0f)) >> 15;
改为
constexpr int32_t kMaxInt = 0x7FFFFFFF;
const float divisor = 18.0f;
const float result = static_cast(kMaxInt) / divisor - 1.0f;
*used_freq_lines = fxp_mul32_Q32(*used_freq_lines << 16, static_cast(result)) >> 15;
4.还是类型转换问题,打包看下哪里有类型转换的错
将报错地方的
#define Qfmt31(x) ((int32)((x) * 0x7FFFFFFF))
全部改为
#define Qfmt31(x) ((int32)((x) * 2147483647.0))
5.说我的 libcrypto.a 库有问题用不了。我不会编译这些库所以直接下载了 libcrypto.a 库替换了之前的库
我的路径是:
E:\cocos2d-x_projects\fighter\frameworks\cocos2d-x\external\openssl\prebuilt\android\arm64-v8a
E:\cocos2d-x_projects\fighter\frameworks\cocos2d-x\external\openssl\prebuilt\android\armeabi-v7a
E:\cocos2d-x_projects\fighter\frameworks\cocos2d-x\external\openssl\prebuilt\android\x86
把里面的 libcrypto.a 和 libssl.a 都替换掉,然后需要 android-studio clear project,重新打包就ok了。我把替换后的上传一下。
