草庐IT

android - 仅限华为手机上的复数 NotFoundException

coder 2023-12-17 原文

我注意到我的华为手机生产应用的许多崩溃报告与复数处理完全相关。其他手机没有这个问题只有华为才有。

所有复数形式都存在并且在其他设备上也能正常工作。

看来华为根本无法处理复数:

android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=4 item=few
       at android.content.res.Resources.getQuantityText(Resources.java:290)
       at android.content.res.Resources.getQuantityString(Resources.java:397)
       ...

android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=6 item=many
       at android.content.res.Resources.getQuantityText(Resources.java:290)
       at android.content.res.XResources.getQuantityText(XResources.java:667)
       at android.content.res.Resources.getQuantityString(Resources.java:397)
       ...

有人遇到过这个问题吗?

最佳答案

根据分析报告,我遇到过此类问题。同样的麻烦-没有华为设备。

这发生在给定的设备列表上: - 华为G700-U10 升腾G700 - 华为G700-U20 升腾G700 - 华为G610-U20升腾

堆栈跟踪:

android.content.res.Resources$NotFoundException: Plural resource ID #0x7f0d0000 quantity=5 item=many
    at android.content.res.Resources.getQuantityText(Resources.java:290)
    at android.content.res.Resources.getQuantityString(Resources.java:397)
    at com.sixthsensegames.client.android.app.activities.TournamentInfoActivity2$a$1.run(SourceFile:2233)
    at android.os.Handler.handleCallback(Handler.java:725)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:153)
    at android.app.ActivityThread.main(ActivityThread.java:5341)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:929)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
    at dalvik.system.NativeStart.main(Native Method) 

我查看了 Resources 类以澄清问题并找到任何解决方法。

public CharSequence getQuantityText(@PluralsRes int id, int quantity)
        throws NotFoundException {
    NativePluralRules rule = getPluralRule();
    CharSequence res = mAssets.getResourceBagText(id,
            attrForQuantityCode(rule.quantityForInt(quantity)));
    if (res != null) {
        return res;
    }
    res = mAssets.getResourceBagText(id, ID_OTHER);
    if (res != null) {
        return res;
    }
    throw new NotFoundException("Plural resource ID #0x" + Integer.toHexString(id)
            + " quantity=" + quantity
            + " item=" + stringForQuantityCode(rule.quantityForInt(quantity)));
}

根据此代码,如果未找到给定数量的复数规则,将给出规则为“OTHER”的复数(在我们获得异常之前)。我在 strings.xml 中将“其他”项(规则)添加到复数定义中。更新了应用程序,从那以后我没有从该设备列表中收到任何此类异常报告。

在我的例子中,它是在俄罗斯语言环境中:

<plurals name="career_tournament_goal_wins_left">
    <item quantity="one">осталась %1$s победа</item>
    <item quantity="few">осталось %1$s победы</item>
    <item quantity="many">осталось %1$s побед</item>
    <item quantity="other">осталось %1$s побед</item> <!-- for Huawei G700-u20 -->
</plurals>

这不是 Elixir ,但至少可以作为解决方法。

快乐编码...

关于android - 仅限华为手机上的复数 NotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840732/

有关android - 仅限华为手机上的复数 NotFoundException的更多相关文章

  1. ruby-on-rails - 复数 for fields_for has_many 关联未显示在 View 中 - 2

    目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi

  2. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  3. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  4. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  5. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  6. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  7. 华为ensp详细安装包、安装教程及所遇问题 - 2

    目录一、安装包链接二、安装详细步骤1.安装Wireshark和WinPcap2.安装OracleVMVirtualBox3.安装ensp三、安装后注册四、启动路由器出现40错误怎么解决一、安装包链接二、安装详细步骤链接:https://pan.baidu.com/s/1QbUUYMOMIV2oeIKHWP1SpA?pwd=xftx提取码:xftx1.安装Wireshark和WinPcap找到Wireshark安装包所在文件夹,双击它,按照以下步骤安装。2.安装OracleVMVirtualBox找到OracleVMVirtualBox安装包所在文件夹,双击它,按照以下步骤安装。注:可自定义安装

  8. 中润光学在科创板IPO过会:拟募资4亿元,张平华为实际控制人 - 2

    近日,上海证券交易所科创板披露的信息显示,嘉兴中润光学科技股份有限公司(下称“中润光学”)获得上市委会议通过。这意味着,中润光学的上市之路获得实质性进展,接下来将提交注册。据贝多财经了解,中润光学的招股书于2022年5月20日获得科创板受理,5个月后便获得上市委会议通过,进度不可谓不快。本次冲刺科创板上市,中润光学拟募资4.05亿元,计划用于高端光学镜头智能制造项目、高端光学镜头研发中心升级项目等。天眼查信息显示,中润光学成立于2012年8月,是一家以从事非金属矿物制品业为主的企业。当前,该公司的注册资本为6600万元,法定代表人为张平华。穿透股权可知,张平华也是该公司的实际控制人。据招股书介

  9. 阿里云,华为云,腾讯云三大公有云厂商,香港地区主机测评 - 2

    三大公有云厂商,香港地区主机测评一、ping时延比对(厦门电信本地测试):Ping时延测试腾讯云阿里云华为云延迟率最低时延44ms,最高72ms,平均46ms47.242段:最低时延59ms,最高204ms,平均107ms最低时延45ms,最高93ms,平均47ms丢包率丢包率小有的ip段丢包率较大每个段都会有概率丢包阿里云:47.242段:最低时延59ms,最高204ms,平均107ms,有的ip段丢包率较大8.210段:最低时延64ms,最高232ms,平均119ms,丢包率较好腾讯云:最低时延44ms,最高72ms,平均46ms,丢包率小华为云:最低时延45ms,最高93ms,平均47m

  10. ruby-on-rails - 如何复数 Ruby (on Rails) 中的符号? - 2

    这可行,但看起来有点丑:s=:shops.to_s.pluralize.to_sym#=>:shops有没有更好的方法来复数化Symbol? 最佳答案 您可以复数表示实际文本的String。符号有点抽象。所以,根据定义,不。但是,也许您可​​以打开Symbol类定义并添加:classSymboldefpluralizeto_s.pluralize.to_symendend然后,您可以调用::shop.pluralize#=>:shops 关于ruby-on-rails-如何复数Ruby(

随机推荐