编译PitchBlackRecoveryProject(PBRP)时出现字体缺失错误求助
嘿,我看到你在给三星Galaxy A24编译PBRP时碰到了这个字体缺失的坑,别着急,咱们一步步来解决它~
你遇到的错误核心是Recovery的图像生成工具找不到阿姆哈拉语(am)对应的NotoSansEthiopic-Regular字体文件,导致编译流程中断。下面是几个实用的解决思路:
检查并添加缺失的字体文件
先去PBRP源码的字体目录(通常是recovery/res/fonts路径)确认是否存在NotoSansEthiopic-Regular.ttf文件。如果没有,你可以从开源的Noto字体库中获取埃塞俄比亚语的常规字体,将其放到对应的字体目录后重新编译。临时跳过阿姆哈拉语的字体加载
如果你暂时不需要阿姆哈拉语的界面支持,可以修改ImageGenerator.java的代码逻辑:找到loadFontsByLocale方法(对应错误栈的第399行),添加一个判断——如果检测到语言是am且找不到对应字体时,跳过加载而不是抛出异常;或者直接把am语言从需要处理的本地化列表中移除。不过这个方法是临时方案,会导致阿姆哈拉语界面显示异常。重新同步完整的PBRP源码
有时候源码同步不完整会丢失部分字体资源,你可以尝试用repo sync --force-sync命令重新同步源码,确保所有依赖的资源文件都拉取完整。检查设备树的本地化配置
查看你的Galaxy A24设备树中是否额外启用了阿姆哈拉语的本地化选项,如果有的话,暂时关闭该选项,等编译完成后再考虑添加语言支持。
附上你遇到的错误信息:
Exception in thread "main" java.io.IOException: Can not find the font file NotoSansEthiopic-Regular for language am at com.android.recovery.tools.ImageGenerator.loadFontsByLocale(ImageGenerator.java:399) at com.android.recovery.tools.ImageGenerator.createGraphics(ImageGenerator.java:492) at com.android.recovery.tools.ImageGenerator.measureTextWidth(ImageGenerator.java:500) at com.android.recovery.tools.ImageGenerator.generateImage(ImageGenerator.java:618) at com.android.recovery.tools.ImageGenerator.main(ImageGenerator.java:755) 10:05:28 ninja failed with: exit status 1 ### failed to build some targets (40:59 (mm:ss)) ####
备注:内容来源于stack exchange,提问作者Manuel Palmero

