Godot 发布 Android 版本未签名的问题

问题

使用Godot开发的程序,导出的Android版本在安装到手机(系统基于Android 11)时报错,提示:

应用未安装:软件包似乎无效。
应用程序安装异常(-103)

调查过程和解决方法

  • 检查包体,发现缺少一个GDNative C++实现的名称应为ddsnative.so的动态库文件;偶然发现导出Android版本时“输出”窗口有出错提示,大意是Android .so动态库文件必须以“lib”开头,于是确认导出的包体有问题。
  • 修改GDNative C++输出的动态库文件名为libddsnative.so,重新发布,包体内文件完整了。继续安装,无效。
  • 网上搜集的资料有一些指向签名错误,和网上一些截图对比,发现我用的新版本编辑器设置是这样:在这里插入图片描述
    相比缺少了JDK路径设置,而包签名工具是基于Java的。
    旧版Android SDK内嵌JVM所在的jre目录在新版已经无效,新版改用jbr。Godot编辑器代码可能还没有针对这个变化进行适配,会不会没有找到签名工具但又没有报错?
  • 手动用jarsigner.exe对.apk进行签名。重新安装,无效!
  • 考虑.apk包签名有V1和V2之类的改进,再手动用apksigner.bat签名。重新安装,成功!

猜你喜欢

转载自blog.csdn.net/feiyunw/article/details/127541138