简体   繁体   English

空对象引用上的android.content.Context.getPackageName()导致应用崩溃

[英]app crash with android.content.Context.getPackageName()' on a null object reference

i need help. 我需要帮助。 I'm in the finish phase of development of my android application and now after a few month of develop the app magically crash with this error : 我正处于我的android应用程序开发的最后阶段,经过几个月的开发,该应用程序因以下错误而异常崩溃:

java.lang.String android.content.Context.getPackageName()' on a null object reference

I don't know what is the problem but i will post the code that cause the crash : 我不知道这是什么问题,但是我将发布导致崩溃的代码:

   public static void start(Context context) {
        context.startActivity(new Intent(context, ConversationsActivity.class));
    }

called with this piece of code (inside a fragment): 用这段代码调用(在片段内):

ConversationsActivity.start(getActivity());

The last change that i've make was to add Fabric.io ( in particular Branch ) and from the history in the last commit on git i don't show nothing that can produce this error 我所做的最后更改是添加Fabric.io(尤其是Branch),并且根据git上一次提交的历史记录,我什么都没有显示,不会产生此错误

EDIT : 编辑:

 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:128) 
at android.content.Intent.<init>(Intent.java:4900)
at com.exampleapp.views.messages.ConversationsActivity.start(ConversationsActivity.java:31)
at com.exampleapp.views.menu.MenuFragment.onMenuMessagesClicked(MenuFragment.java:116)
at com.exampleapp.views.menu.MenuFragment_ViewBinding$5.doClick(MenuFragment_ViewBinding.java:82)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Or you could do this: 或者您可以这样做:

public static void start(Activity activity) {
    activity.startActivity(new Intent(activity, ConversationsActivity.class));
}

You should use getActivity() to launch an Activity from Fragment . 您应该使用getActivity()Fragment启动一个Activity

From a Fragment: Context is parent activity (getActivity()) . 从片段开始: Context是父活动(getActivity())

Intent intent = new Intent(getActivity(), ConversationsActivity.class);
startActivity(intent);

From an Activity: Context is current activity (this) . 来自活动: Context是当前活动(this)

Intent intent = new Intent(this, ConversationsActivity.class);
startActivity(intent);

Your problem is that you are using the intent wrong. 您的问题是您使用的意图错误。 Replace your start() code with this: 用以下代码替换您的start()代码:

public static void start() {
    Intent i = new Intent(getApplicationContext(), ConversationsActivity.class);
    startActivity(i);
}

Then instead of using ConversationsActivity.start(getActivity()); 然后,而不是使用ConversationsActivity.start(getActivity()); to call it, just use start(); 要调用它,只需使用start(); when you want to call the method. 当您想调用该方法时。

Hope this helps! 希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 android.content.Context.getPackageName() 在 null object 参考 - android.content.Context.getPackageName() on a null object reference 空对象引用错误时出现&#39;java.lang.String android.content.Context.getPackageName()&#39; - 'java.lang.String android.content.Context.getPackageName()' on a null object reference error 尝试通过java类访问活动中的方法时,null对象引用上的android.content.Context.getPackageName()&#39; - android.content.Context.getPackageName()' on a null object reference, when trying to access a method in an activity through a java class 空对象引用上的DialogFragment&#39;java.lang.String android.content.Context.getPackageName()&#39; - DialogFragment 'java.lang.String android.content.Context.getPackageName()' on a null object reference 尝试在 null object 引用错误上调用虚拟方法 'java.lang.String android.content.Context.getPackageName()' - Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference error 运行时Android应用程序崩溃:“ java.lang.String android.content.Context.getPackageName()” - Android app crashing on run: 'java.lang.String android.content.Context.getPackageName()' 当意图数据发送到另一个Activity android.content.Context.getPackageName()时发生异常 - Exception when Intent Data to another Activity android.content.Context.getPackageName() 由于尝试调用虚拟方法&#39;java.lang.String android.content.Context.getPackageName(),因此意图失败 - Intent fails because of Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName() 尝试调用虚拟方法&#39;java.lang.String android.content.Context.getPackageName() - Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName() android.content.Context.getResources() 在空对象引用上 - android.content.Context.getResources() on a null object reference
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM