3.8.5 Android 系统15+ AudioEngine 崩溃问题

void AudioEngine::preload(const ccstd::string &filePath, const std::function<void(bool isSuccess)> &callback) {

if (!isEnabled()) {

    callback(false);

    return;

}

lazyInit();

if (sAudioEngineImpl) {

    if (!FileUtils::getInstance()->isFileExist(filePath)) {

        if (callback) {

            callback(false);

        }

        return;

    }

    sAudioEngineImpl->preload(filePath, callback);

}

}

项目上线做海外机型深度兼容性测试,发现几个崩溃,跟着AI一步步查编译出来的libcocos.so,最后发现音频这里 preload 第一个callback未做安全判断裸调用,某些异常情况就崩了。看了3.8.8引擎源码,这里也还是有问题。

你自己检查callback

cc.assetManager.loader.preload

应该是与这个方法绑定的,你可以自己测试一下。