空对象引用上的android.content.Context.getPackageName()

问题描述 投票:1回答:4

从片段转换为活动时出现此错误,如下所示:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference         at android.content.ComponentName.<init>(ComponentName.java:130)         at android.content.Intent.<init>(Intent.java:6108)

下面是我转到下一个活动的代码,该错误发生在下面代码的第一行。

  Intent mainIntent = new Intent (getContext(), MainActivity.class);
            mainIntent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity (mainIntent);

到目前为止,我没有在网上看到任何解决方案。

java android-studio android-fragments android-activity nullpointerexception
4个回答
1
投票
因为您是从

Fragment进行调用的,所以应在此处使用getActivity()而不是getContext()

Intent mainIntent = new Intent (getActivity(), MainActivity.class); mainIntent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity (mainIntent);
希望能对您有所帮助。

0
投票
请尝试与getContext()的getActivity()交互使用

0
投票
我使用此代码处理片段的事务

private Context context; context.startActivity(new Intent(context, MainActivity.class));


0
投票
似乎您得到的错误上下文引发了此NullPointerException

尝试替换以下行:

Intent mainIntent = new Intent (getContext(), MainActivity.class);

使用:>>,如果您在活动中

Intent mainIntent = new Intent (this, MainActivity.class);

with:>>,如果您位于活动中的回调侦听器中

Intent mainIntent = new Intent (MyActivityName.this, MainActivity.class);

使用:>>,如果您位于片段中

Intent mainIntent = new Intent (requireActivity(), MainActivity.class);

© www.soinside.com 2019 - 2024. All rights reserved.