uni-app 安卓国际化打包报错

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 安卓国际化打包报错

示例代码:

  • 安卓平台
  • 初次打包(标准基座或者自定义基座)
  • Bug:app在启动图阶段会报错:zip file size less than 。。。,如果是标准基座还会有“本应用无法独立运行”报错
  • 测试原因:应该是多语言支持bug

操作步骤:

  • 复现步骤:
    manifest-应用名称=%app.name%
    平台:安卓(IOS没有这个问题)
    基座:标准和自定义无差别

    手工修改应用名称=xxxx(中文)就可以触发差异编辑正常启动app,否则就不可以(多种报错,app无法正常启动)。启动后再把应用名称改回=%app.name%,在差异编辑后app仍然可以正常启动。

    结论:初次安装基座,应用名称=多语言格式时,bug可复现

预期结果:

  • app正常启动

实际结果:

  • app正常启动

bug描述:

  • 复现步骤:
    manifest-应用名称=%app.name%
    平台:安卓(IOS没有这个问题)
    基座:标准和自定义去差别

    Bug:app在启动图阶段会报错:zip file size less than 。。。

    手工修改应用名称=xxxx(中文)就可以触发差异编辑正常启动app,否则就不可以。启动后再把应用名称改回=%app.name%,在差异编辑后app仍然可以正常启动。

    所以可能是初次安装基座,应用名称=多语言格式时,bug出现


12 回复

请提供appid,我们查下后台打包日志。


UNI92039FE
当时有多个项目有同样的问题,都是手工把%app.name%改成中文的APP名称后,触发差异编译暂时可以调试但不能提交商店。改中文名称之前IOS和安卓各自有一些其它的报错,提请复现时注意,应该是hbuilderX多语言的一些处理逻辑有bug。之前还反馈过有3个框架组件或api(比如启动图)多语言时也有fallback处理的bug,但似乎没有官方回复确认。谢谢!

另外一个APPID:UNI7CBE1CD

云端打包只保留3天的日志,请重新提交云打包。为了能快速排查问题,最好是可以上传下项目工程。

APPID:UNI7CBE1CD(配置了框架自带和自定义多语言)
已经重新打了自定义基座,和云打包。公司规定,工程不方便上传。
补充:安装自定义基座apk到华为手机-文件管理-压缩包: %app.name%.zip,猜测可能是类似这样的中间结果导致了zip报错,无法启动app。
这个apk也可以顺便复现多语言不一致的bug(手机语言、应用切换语言、fallback语言之间)。

从云端打包日志看配置的国际化是正常的,后台日志显示默认语言时中文,配置了zh-Hans、en、ko、th、vi、zh-Hant国际化名称。 你是手动修改manifest.json中的name值为中文吗?请提供下修改前的manifest.json文件以及国际化配置文件。

回复 DCloud_App_Array: 请问这个bug确认能修复吗?现在国际版安卓卡在这里无法提交商店了,之前IOS是带着bug提交商店的。

manifest当前设置: “locale” : “auto”, “fallbackLocale” : “zh-Hans”,
手机语言切换成英文试试就可以复现之前另外帖子报的bug。
手机设置为英文、中文,问题都是一样的。
如果fallback=中文简体,那么开屏图的APP名字是中文、2个IOS权限弹窗(相册读取、用户跟踪)都是显示中英换杂(提示语标题是正确的中文,但副标题是英文),虽然手机语言=英文。
如果fallback=en,那么那么开屏图的APP名字是英文、2个IOS权限弹窗(相册读取、用户跟踪)都是显示中英混杂(提示语标题是正确的英文,但副标题是中文),虽然手机语言=中文。
这个换了测试手机和hbuilderX版本,问题同样,所以应该是框架组件多语言实现的bug。

ios平台隐私权限描述国际化参考这里:https://ask.dcloud.net.cn/article/35860

manifest.json->name: %app.name% (手工修改为中文名称就可以,否则就报错)
locale/index.js: // 国际化json文件,文件内容详见下面的示例 import en from ‘./en.json’ import zhHans from ‘./zh-Hans.json’ import zhHant from ‘./zh-Hant.json’ // 如果是韩语等,需要自定义语言,包括框架的组件、API、权限等相关多语言配置处理都需要自定义 import ko from ‘./ko.json’ import th from ‘./th.json’ import vi from ‘./vi.json’
// export多语言json object(messages) export default { en, ‘zh-Hans’: zhHans, ‘zh-Hant’: zhHant, ‘ko’: ko, ‘th’: th, ‘vi’: vi, }
locale/en.json { “lang”: “English”, “app.name”: “XXX”, }

用测试项目没有复现你反馈的问题,请提交下完整示例项目。

关于国际化的这几个bug已经提供了非常详细的错误信息和错误表象,从定位bug到汇报bug到回复已经花了不止3个工作日。例如;apk安装到手机的文件名还是%app_name%.apk,导致zip报错。这个已经把hbuilder的错误定位的非常具体了吧。再例如:中英文同时混杂的框架组件名和截图也提供了,这个走读下自身代码,按技术常理也应该能在10分钟之内定位了吧。
抱歉,实在没有精力再写一个完整示例项目。国际化的这些bug都不大,都是框架基本的代码逻辑不严谨导致,可能就是内部优先级不在这方面吧,我看社区里面反馈的此类问题一般都没有得到最终解决。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!