【问题标题】:Unable to start android app due to LogCollectManager.getUserType() error由于 LogCollectManager.getUserType() 错误而无法启动 android 应用程序
【发布时间】:2023-03-08 13:30:02
【问题描述】:

当我尝试在华为 P9 上运行我的应用程序时出现错误

尝试调用虚方法'int com.huawei.lcagent.client.LogCollectManager.getUserType()' 为空 对象引用

有什么办法可以调试这个,因为应用程序可以在其他 Android 6 手机(三星、HTC...)上运行。

应用程序: https://play.google.com/store/apps/details?id=com.morescreens.mkt

日志:

07-04 10:42:56.045: W/System.err(955): java.lang.NullPointerException: 尝试调用虚拟方法'int com.huawei.lcagent.client.LogCollectManager.getUserType()' 为空 对象引用 07-04 10:42:56.046: W/System.err(955): at com.android.server.util.ReportTools.getUserType(ReportTools.java:86) 07-04 10:42:56.046: W/System.err(955): 在 com.android.server.util.ReportTools.isBetaUser(ReportTools.java:73) 07-04 10:42:56.046: W/System.err(955): 在 com.android.server.util.ReportTools.report(ReportTools.java:58) 07-04 10:42:56.046:W/System.err(955):在 com.android.server.util.HwUserBehaviourRecord.appExitRecordInnerImpl(HwUserBehaviourRecord.java:125) 07-04 10:42:56.046: W/System.err(955): 在 com.android.server.util.HwUserBehaviourRecord.access$200(HwUserBehaviourRecord.java:32) 07-04 10:42:56.046: W/System.err(955): 在 com.android.server.util.HwUserBehaviourRecord$AsyUploadLooperThread$1.handleMessage(HwUserBehaviourRecord.java:255) 07-04 10:42:56.046: W/System.err(955): 在 android.os.Handler.dispatchMessage(Handler.java:102) 07-04 10:42:56.046:W/System.err(955):在 android.os.Looper.loop(Looper.java:150) 07-04 10:42:56.046: W / System.err(955):在 com.android.server.util.HwUserBehaviourRecord$AsyUploadLooperThread.run(HwUserBehaviourRecord.java:267)

有人遇到过这样的问题吗? 针对此错误联系华为支持的最佳方式是什么?我在消费者支持网站上向他们发送电子邮件。是否有任何开发者支持网站或电子邮件?请提供链接。 提前致谢!

编辑:我发现我的应用没有调用此异常。但是,我的应用程序几乎退出了这个异常,这让我认为应用程序正在崩溃,但实际上有些东西正在杀死我的应用程序。这是我在Application.onTrimMemory 方法中的代码,它是“当操作系统确定现在是进程从其进程中修剪不需要的内存的好时机时调用”。我还是不知道为什么这个方法只在华为P8、P9设备上调用,一直没有得到华为支持的任何回应。

【问题讨论】:

  • 完全相同的堆栈跟踪“bla bla calling getUserType()...”和使用 P9 Lite 手机杀死的应用程序,在我的情况下,它发生在向主循环器发布可运行文件之后。这看起来像是华为实现中的一个内部错误,我不得不通过从我的应用程序工作流程中的另一个随机位置访问主线程来解决这个问题。
  • 我也遇到了同样的情况。我的应用程序在我的 Oneplus 2 中启动,但无法在 Honor 6 上启动。我在启动时检查权限,我猜在获得权限后的某个地方,它会崩溃。尝试找出导致它崩溃的代码,并暂时通过 try catch 将其包围以使其工作。

标签: android nullpointerexception huawei-mobile-services


【解决方案1】:

该异常是通用的,可能有很多原因,我发现深入了解并详细了解它的最佳方法是在手机的项目菜单中启用更详细的登录。

在P9上可以写代码:*#*#2846579#*#*
在电话号码合成中,打开项目菜单如图: Project Menu

然后选择后台设置->日志设置并勾选所有项目;您的 logcat 将更详细,更容易找到导致该异常的原始错误。 使用后,请取消勾选日志设置,以免降低手机系统性能。

在我的情况下,它是一个 iap 插件插入到我的应用程序的统一项目中,太旧,从未使用过但已初始化:这会使我的应用程序崩溃并给出错误;删除它就可以了。

【讨论】:

    【解决方案2】:

    我知道这是旧的,但是当我在清单中添加具有不存在类的服务时,我的问题就出现了。

    【讨论】:

      【解决方案3】:

      我得到同样的错误。
      万一您在这里没有得到答案,请务必查看my question

      PS:本来会写这个作为评论,但不幸的是我还没有获得足够的声誉

      【讨论】:

        【解决方案4】:

        我收到此错误是因为我将 int 传递给 TextViews setText 方法。

        修复有效..

        textView.setText(intValue + "");
        

        【讨论】:

          【解决方案5】:

          您只需要转到设备的设置,然后转到“应用程序”,然后选择您的应用程序并授予所有权限......之后它就会工作

          【讨论】:

            猜你喜欢
            • 2014-07-29
            • 2011-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-08-22
            • 1970-01-01
            相关资源
            最近更新 更多