当前位置: 首页 > 知识库问答 >
问题:

活动onNewIntent空指针异常

傅阳
2023-03-14

我在活动onCreate()中初始化列表,如下所示:

private List<MyItem> filtered;
@Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_dashboard);
      filtered = new ArrayList<>();

      // more things
}
 @Override
   protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      filtered.clear();
   }

编辑:我的活动的launchmode是SingleTask

编辑2:

我无法发送更多有用的日志,因为这次崩溃是在生产中。我只有一些布料日志。

谢谢你的帮助,但我不能粘贴整个代码,因为隐私。

我想我在SingleTask-OnCreate-OnNewIntent用法上有问题。简单地说,我试图打开我的应用程序从通知与参数决定哪个片段将打开时,用户导航到活动。

您有任何包含SingleTask-OnCreate-OnNewIntent实现的例子吗?

共有1个答案

万修为
2023-03-14

Open Whisper Systems的团队遇到了同样的问题:

https://github.com/whispersystems/signal-android/issues/2971

他们认为这是由于Android框架在oncreate()之后不久调用onnewintent(),即使您在oncreate()中调用finish()。这最终导致在onnewIntent()nullpointerexception中使用null对象,因为这些对象没有在通常的oncreate()中设置。在oncreate()onnewintent()之间似乎是一种罕见的情况或竞争条件。

他们似乎已经通过检查onnewintent()中的isfiniting()来解决这个问题,以防止onnewintent()继续:

@Override
protected void onNewIntent(Intent intent) {
    Log.w(TAG, "onNewIntent()");

    if (isFinishing()) {
        Log.w(TAG, "Activity is finishing...");
        return;
    }
    ...
}

来源1:https://github.com/silenceim/silence/commit/c0acae1124c0c066fd961d21d3ec9b989574125d

来源2:https://github.com/silenceim/silence/blob/master/src/org/smssecure/smssecure/conversationactivity.java#l223

更新:2017年11月10日:当升级app/build中的构建工具时,这个问题似乎很少发生。Gradle:

buildToolsVersion '25.0.2'

这种情况似乎在旧的构建工具中发生得更多,比如BuildToolsVersion'23.0.3',但是仍然需要修复,因为这种情况在很少的情况下发生。

 类似资料:
  • 问题内容: 我正在尝试启动一个IntentService。当我这样做时,它会吐出: 我已经用谷歌搜索过,并查看了尽可能多的类似StackOverflow问题。但是,有一些细微的区别,我无法解决。首先,没有任何异常引用我的类。其次,通过更改上下文或再次检查以确保其不为null来解决类似的问题。 我有代码来检查情况并非如此: 我的IntentService是根据Google文档建模的。只是一个带有on

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几

  • 问题内容: 嗨,我们一直在使用apache编写我们的Java程序来读取xls和xlsx文件,问题是我们由于两个原因而得到了空指针异常。第一个是已经解决的空白单元格,另一个是当我们选择一个没有任何记录的列。 我们的程序要求输入excel文件的路径,然后输入要读取的文件的特定工作表号和特定的工作表的列号。这是读取xls文件的代码 变量工作表名称用于excel文件的工作表编号 变量cols用于您要阅读的

  • 问题内容: 我正在android中做一个应用程序,因此我需要访问com.android.internal.telephony API。现在,我可以访问这些API了,但问题是,无论我在自己的类中调用Class Call.java方法的什么地方,都会抛出。您可以在http://hi- android.info/src/com/android/internal/telephony/Call.java.h