Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UE] Bug: UE5安卓打包中出现libnode.so缺失及SSL库的问题 #1751

Open
3 tasks done
mimiky opened this issue Jun 4, 2024 · 7 comments
Open
3 tasks done

[UE] Bug: UE5安卓打包中出现libnode.so缺失及SSL库的问题 #1751

mimiky opened this issue Jun 4, 2024 · 7 comments
Assignees
Labels
bug Something isn't working Unreal

Comments

@mimiky
Copy link

mimiky commented Jun 4, 2024

前置阅读 | Pre-reading

Puer的版本 | Puer Version

Unreal_v1.0.6p1

UE的版本 | UE Version

5.1

发生在哪个平台 | Platform

Android

错误信息 | Error Message

No response

问题重现 | Bug reproduce

UE5安卓打包时,遇到了以下问题:

  1. 报错显示缺失 libnode.so 文件;
  2. 尝试删了库里头的libnode.so后,需要手动添加上ssl库才能打包成功,目前5.1可以编译打包运行,但不能确保兼容;
    根据与Puerts插件开发者的讨论,nodejs构建脚本有问题,都编译带ssl的了。等待后续更新node库
@mimiky mimiky added bug Something isn't working Unreal labels Jun 4, 2024
@chexiongsheng
Copy link
Collaborator

chexiongsheng commented Jun 4, 2024

去掉你配置的ssl,然后下载这个版本的nodejs库解压覆盖到Plugins/Puerts/ThirdParty下对应目录:https://github.com/puerts/backend-nodejs/releases/download/NodeJS_16.16.0_240604/nodejs_bin_16.16.0.tgz

试试问题解决了没

@mimiky
Copy link
Author

mimiky commented Jun 5, 2024

去掉你配置的ssl,然后下载这个版本的nodejs库解压覆盖到Plugins/Puerts/ThirdParty下对应目录:https://github.com/puerts/backend-nodejs/releases/download/NodeJS_16.16.0_240604/nodejs_bin_16.16.0.tgz

试试问题解决了没

打包是没问题了,但是加载js脚本时出问题了,尝试加载crypto的JavaScript模块时失败
Puerts: Error: (0x0x707b608b38) Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:160: Error: can not find crypto in ../../../Bit/Content/JavaScript/framework
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D Error: can not find crypto in ../../../Bit/Content/JavaScript/framework
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at require (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:105:23)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at ../../../Bit/Content/JavaScript/framework/FunctionLibrary.js:5:16
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at executeModule (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:70:9)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at require (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:152:29)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at ../../../Bit/Content/JavaScript/modules/umg/main/proxy/MarketplaceConfirmProxy.js:5:27
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at executeModule (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:70:9)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at require (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:152:29)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at ../../../Bit/Content/JavaScript/modules/umg/main/mediator/AvatarCustomizationMediator.js:13:35
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at executeModule (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:70:9)
2024-06-05 11:02:45.392 24480-24564 UE com.Test.App D at require (Pak: Bit/Content/Paks/pakchunk0-Android_ASTC.pak/Bit/Content/JavaScript/puerts/modular.js:152:29)

@chexiongsheng
Copy link
Collaborator

符合预期。crypto是ssl相关模块。禁用ssl这也去掉了。
最稳妥的是把nodejs的ssl版本改成和ue一致,但这puerts做不了,每个ue版本用的ssl不一定一致。我不太可能针对每个ue版本出一个nodejs库。
你有几个选项:
1、不用ssl相关功能;
2、把nodejs的ssl改成和ue一致,自行编译一个版本;
3、承担不一致的可能导致问题的风险,继续用带ssl的版本;

@mimiky
Copy link
Author

mimiky commented Jun 5, 2024

符合预期。crypto是ssl相关模块。禁用ssl这也去掉了。 最稳妥的是把nodejs的ssl版本改成和ue一致,但这puerts做不了,每个ue版本用的ssl不一定一致。我不太可能针对每个ue版本出一个nodejs库。 你有几个选项: 1、不用ssl相关功能; 2、把nodejs的ssl改成和ue一致,自行编译一个版本; 3、承担不一致的可能导致问题的风险,继续用带ssl的版本;

那我暂时先用着带ssl的版本吧,目前用着没问题,后续空闲了再编看看

@mimiky
Copy link
Author

mimiky commented Jun 5, 2024

看了下UE5.1应该用的是 1.1.1n ,NodeJS 16.16.0用的 1.1.1q吧,差异挺小的

@mimiky
Copy link
Author

mimiky commented Jun 5, 2024

5.2 5.3 是1.1.1q,估计这两个版本用着不带ssl是没问题的,不过我没试过

@chexiongsheng
Copy link
Collaborator

chexiongsheng commented Jun 6, 2024

5.2 5.3 是1.1.1q,估计这两个版本用着不带ssl是没问题的,不过我没试过

我说的带不带ssl是node的编译选项,选了without-ssl后,宿主有没ssl,node都不会有ssl相关功能。without-ssl版本node在我试过的所有ue版本都能用。

如果5.1区别不大倒可以试试用with-ssl的nodejs,JsEnv.build.cs不配置库nodejs的libssl,改为引用UE的ssl模块。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Unreal
Projects
None yet
Development

No branches or pull requests

2 participants