首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在发射前报告中报告的跟踪错误- java.lang.NullPointerException - android.accounts.Account

在发射前报告中报告的跟踪错误- java.lang.NullPointerException - android.accounts.Account
EN

Stack Overflow用户
提问于 2021-01-27 19:52:21
回答 1查看 1.6K关注 0票数 18

我最近更新了我在play商店的第一个android应用程序,在发布前的报告中报告了一个特定设备上的错误。提供的堆栈跟踪如下:

代码语言:javascript
运行
复制
FATAL EXCEPTION: main
Process: com.google.android.gm, PID: 9714
java.lang.NullPointerException: Attempt to invoke virtual method 'android.accounts.Account com.android.mail.providers.Account.b()' on a null object reference
    at dgg.Z(PG:3)
    at dgg.onPrepareOptionsMenu(PG:6)
    at com.google.android.gm.ComposeActivityGmail.onPrepareOptionsMenu(PG:1)
    at android.app.Activity.onPreparePanel(Activity.java:4137)
    at gn.onPreparePanel(PG:2)
    at vz.onPreparePanel(Unknown Source:2)
    at tm.onPreparePanel(PG:3)
    at tv.a(PG:192)
    at tv.f(PG:7)
    at tc.run(PG:2)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8016)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)

问题是,我希望在上面的跟踪中看到我的一个文件和一个行号,但是没有,所以我不知道如何跟踪这个错误的原因。

跟踪提到'ComposeActivityGmail‘。在我的应用程序中,唯一与Gmail有关的地方是我的设置菜单中的一个选项,它使用以下代码启动“发送电子邮件”的意图,所以我猜错误就在这里。

代码语言:javascript
运行
复制
public class SettingsMenuFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle bundle, String s) {

        addPreferencesFromResource(R.xml.app_preferences);
        Preference feedbackPreference = findPreference("keyFeedback");

        Objects.requireNonNull(feedbackPreference).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {

                Intent intent = new Intent(Intent.ACTION_SENDTO);
                intent.setData(Uri.parse("mailto:")); // only email apps should handle this
                intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"fakeemail@gmail.com"});
                intent.putExtra(Intent.EXTRA_SUBJECT, "Fake Feedback");
                if (intent.resolveActivity(requireActivity().getPackageManager()) != null) {
                    startActivity(intent);
                }
                return true;
            }
        });

是否有人对如何更好地理解堆栈跟踪有任何建议,或者在下面的代码片段中有什么可能出错?

Update因此在发布前的报告中遇到这个问题的设备是三星。我自己采购了一款三星设备,并设法重现了这个问题。当我点击反馈偏好,电子邮件客户端选择弹出打开,但我的应用程序死亡。然后,我将手机插入我的笔记本电脑,在android中以调试模式运行相同的代码库,但它运行得非常完美。从play商店重新安装了这个应用程序(仍然和以前一样),现在它运行得完美无缺。太迷茫了!

EN

回答 1

Stack Overflow用户

发布于 2021-12-24 03:16:17

没有办法解决这个问题。我认为这只是Gmail应用程序的旧版本的一个问题,并且在当前版本中得到了解决。如果用户更新Gmail应用程序,错误将不会重现。

我成功地复制了这个例外。我有一部Android 10三星智能手机。我重新设置了手机,并试图从我的应用程序中启动Gmail。当时发生了这一问题。Gmail版本为2019.11.21.283644823,更新Gmail应用程序后,此问题不再发生。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65926400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档