当前位置: 首页 > news >正文

Cocos creator2.4.4 处理 16KB 问题

资料整理:

1:https://forum.cocos.org/t/topic/169291 (-x版本3.7升级)

2:https://github.com/cocos/engine-native/pull/4403/commits/ef13063c68db4403a347e7bf7b8422b81bdd2416 (官方提供升级方案)

3: 一下多数问题 都是靠豆包解决的~ AI真牛逼啊,省了不少事,我用的版本是2.4.4 大家遇到的问题可能都不太一样,问问豆包即可~

官方需要修改的内容我就不重复了,大家参照官方提供的 提交日志,下面是 android工程修改如下:

1:修改sdk版本 — 路径:/jsb-default/frameworks/runtime-src/proj.android-studio/gradle.properties

# Android SDK version that will be used as the compile project

PROP_COMPILE_SDK_VERSION=36

# Android SDK version that will be used as the earliest version of android this application can run on

PROP_MIN_SDK_VERSION=23

# Android SDK version that will be used as the latest version of android this application has been tested on

PROP_TARGET_SDK_VERSION=36

# Android Build Tools version that will be used as the compile project

PROP_BUILD_TOOLS_VERSION=36.0.0

#这里如果用了官方例子里面提供的 PROP_NDK_VERSION= 则需要手动注释掉 jsb-default/frameworks/runtime-src/proj.android-studio/local.properties  中的ndk.dir

PROP_NDK_VERSION=28.1.13356709

#删除 PROP_APP_ABI=armeabi-v7a:arm64-v8a:x86:x86_64 中 x86 好像是后面提到的替换libuv库并不支持x86

PROP_APP_ABI=armeabi-v7a:arm64-v8a:x86_64

2:ndk版本在:

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

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

5: 按照官方给的文档:https://github.com/cocos/engine-native/pull/4403/commits/ef13063c68db4403a347e7bf7b8422b81bdd2416 工程里的配置相关代码,修改后我这里还需要一下代码(每个人的问题可能不一样,问下豆包)

(1)

// pv_mp3dec_fxd_op_c_equivalent.h android 16kb修改

// #define Qfmt_31(a) (Int32)((float)a*0x7FFFFFFF) 修改为

#define Qfmt_31(x) ((int32)((x) * 2147483647.0))

 (2)

遇到问题:/Users/mac/Desktop/LuLinSdkForZip/1000051-az/LuLin/tw-applink-next/jsb-default/frameworks/cocos2d-x/external/sources/pvmp3dec/src/pvmp3_dct_9.cpp:140:48: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Werror,-Wimplicit-const-int-float-conversion] 140 | vec[8] = fxp_mac32_Q32(vec[8], tmp0 << 1, cos_4pi_9); | ^~~~~~~~~ /Users/mac/Desktop/LuLinSdkForZip/1000051-az/LuLin/tw-applink-next/jsb-default/frameworks/cocos2d-x/external/sources/pvmp3dec/src/pvmp3_dct_9.cpp:84:21: note: expanded from macro 'cos_4pi_9' 84 | #define cos_4pi_9 Qfmt31( 0.17364817766693f) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/mac/Desktop/LuLinSdkForZip/1000051-az/LuLin/tw-applink-next/jsb-default/frameworks/cocos2d-x/external/sources/pvmp3dec/src/pvmp3_dct_9.cpp:80:32: note: expanded from macro 'Qfmt31' 80 | #define Qfmt31(a) (int32)(a*(0x7FFFFFFF)) | ~ ^~~~~~~~~~ <a href="open.plugin.studio.bot">Ask Gemini</a>

解决方法:

// pvmp3_dct_9.cpp android 16kb修改

// #define Qfmt31(a) (int32)(a*(0x7FFFFFFF)) 修改为

#define Qfmt31(a) (int32)(a * (float)0x7FFFFFFF)

(3)

遇到问题:C/C++: fcntl(): Bad file descriptor C/C++: /Users/mac/Desktop/LuLinSdkForZip/1000051-az/LuLin/tw-applink-next/jsb-default/frameworks/cocos2d-x/external/sources/pvmp3dec/src/pvmp3_alias_reduction.cpp:172:70: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Werror,-Wimplicit-const-int-float-conversion] C/C++: 172 | used_freq_lines = fxp_mul32_Q32(used_freq_lines << 16, (int32)(0x7FFFFFFF / (float)18 - 1.0f)) >> 15; C/C++: | ^~~~~~~~~~ ~ C/C++: 1 error generated.

 解决方法:

// pvmp3_alias_reduction.cpp android 16kb修改

// used_freq_lines = fxp_mul32_Q32(used_freq_lines << 16, (int32)(0x7FFFFFFF / (float)18 - 1.0f)) >> 15; 修改为

used_freq_lines = fxp_mul32_Q32(used_freq_lines << 16, (int32)((float)0x7FFFFFFF / 18.0f - 1.0f)) >> 15;

 (4) 

  我这使用的sdk 有删除东西需要再 jsb-default/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro  增加 (这个是我这需要增加的处理不一定大家都需要)

# android 16kb修改

-dontwarn com.kanxd.emulator.jni.KxdEmulatorChecker

-dontwarn kotlinx.parcelize.Parcelize

6:好像是说之前的写法不能用了,需要把package移动个位置

 (1)修改后原始工程下中jsb-default/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml 

标红处需要移动到:jsb-default/frameworks/runtime-src/proj.android-studio/app/build.gradle  

(2)修改 jsb-default/frameworks/cocos2d-x/cocos/platform/android/libcocos2dx/AndroidManifest.xml 

标红处移动到:jsb-default/frameworks/cocos2d-x/cocos/platform/android/libcocos2dx/build.gradle 

(3)如果遇到 jsb-default/frameworks/runtime-src/proj.android-studio/instantapp/AndroidManifest.xml  的提示,同理

7:打包后遇到 问题

 ld.lld: error: relocation R_AARCH64_PREL64 cannot be used against symbol 'OPENSSL_armcap_P'; recompile with -fPIC >>> defined in /Users/mac/Desktop/LuLinSdkForZip/1000051-az/LuLin/tw-applink-next/jsb-default/frameworks/cocos2d-x/external/android/arm64-v8a/libcrypto.a(armcap.o) >>> referenced by sha256-armv8.o:(.text+0xF48) in archive

解决方法:这里需要从 https://github.com/KDAB/android_openssl  下载 ssl_1.1的库 

然后使用库里面所带的 libcrypto.a和libssl.a

 替换项目中的 jsb-default/frameworks/cocos2d-x/external/android

8: 继续打包会遇到:libuv.a 编译不过 `ld.lld: error: undefined hidden symbol: __stack_chk_fail_local

解决方法:这里需要把 直接使用cocos creator 3.8.1版本的Creator\3.8.1\resources\resources\3d\engine-native\external\android中的 libuv.a 替换咱们本地的文件既可。

http://www.dtcms.com/a/515693.html

相关文章:

  • 旅游网站的设计的前提成都那家网站做的好
  • undefined reference to `cv::String::dea llocate()‘
  • 计划任务原理及实战
  • 做网站设计最好的公司做旅游网站的论文
  • 【Android】Handler/Looper机制相关的类图和流程图
  • ARM《1》_回顾gcc、动态编译和静态编译、MakeFile的使用
  • 网络环路:隐形威胁的破解之道
  • stm32 can错误中断不处理
  • 我们平常说的连网是指什么?
  • 网站优化人员新乡市延津县建设局网站
  • 网站建设分析从哪几个方面东莞市招聘网
  • 设计模式-责任链模式:从鞋厂审批流程看请求处理的艺术
  • 21_AI智能体开发架构搭建之基于Flask蓝图模块化构建可扩展的知识库服务实践
  • 【手机篇】AI深度学习在手机摄像头模组支架外观检测应用方案
  • 手机版矩阵系统源码搭建与定制开发:深度技术解析与落地实践
  • 做网站首页可以用传媒公司吗软件 项目管理系统
  • 舟山建设工程信息网站北京设计公司招聘
  • Elasticsearch还有哪些常用的分词器?
  • 使用CNN构建VAE
  • TESOLLO:使用MANUS Franka机械臂提高机器人灵活性
  • 西宁建设网站软件陕西交通建设有限公司网站
  • COMAU柯马焊接机器人气保焊省气
  • 西门子 1500 PLC 依托 Ethernet/ip 转 Modbus RTU联合发那科机器人优化生产流程
  • 全球首个超声多模态大模型!百度百舸支撑海豚智能实现高效训练与稳定服务
  • 统一机器人描述格式---URDF
  • SCARA 机器人点到点(PTP)轨迹规划方法
  • 岳阳市网站建设推广搜索引擎优化是什么?
  • 阿里云代理商:阿里云负载均衡是什么?
  • 安川机器人motoplus二次开发实现socket 变量读写 SKILLSND命令接收 轨迹实时修正功能
  • 社交网站 备案wordpress硬件接口