调试帮助“尝试在空对象引用上调用方法”

时间:2017-06-14 18:27:12

标签: android debugging object methods reference

您好我需要一些非常简单的问题的帮助。当我点击我创建的第二个按钮时,我的应用程序崩溃了。

据我所知,当我点击按钮时应用程序认为没有任何对象,但我相信它都标记正确。看一看。

这些是崩溃应用程序的所有组件:

NotificationCompat.Builder notification_shot;

public void clk_shot(View v) {
    //Shot Build

    **notification_shot.setSmallIcon(R.drawable.ic_shot);
    notification_shot.setWhen(System.currentTimeMillis());
    notification_shot.setContentTitle("drink up");
    notification_shot.setContentText("cheers");
    notification_shot.setLights(0xffffff00, 1000, 3000);
    notification_shot.setAutoCancel(false);


    Intent intent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification_shot.setContentIntent(pendingIntent);
}
调试报告中的

我得到了这一行

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.NotificationCompat$Builder android.support.v4.app.NotificationCompat$Builder.setSmallIcon(int)' on a null object reference
                  at com.weibapps.test.icons.MainActivity.clk_shot(MainActivity.java:58)

第58行在我的上述代码中标有**

它旁边有一个小图标,我相信这意味着应用程序知道要拉什么图标。任何帮助将不胜感激。

这是我的第二个按钮非常好。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    notification_mari = new NotificationCompat.Builder(this);
    notification_mari.setAutoCancel(false);
}

public void clk_mari(View view) {
    //Mari Build

    notification_mari.setSmallIcon(R.drawable.ic_mari);
    notification_mari.setWhen(System.currentTimeMillis());
    notification_mari.setContentTitle("light");
    notification_mari.setContentText("up");
    notification_mari.setLights(0xff00ff00, 500, 500);
    //End Build Components
    Intent intent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification_mari.setContentIntent(pendingIntent);
    //has intent

    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.notify(uniqueID, notification_mari.build());
}

非常感谢任何帮助。我搜索过但实际上还没有找到这个具体问题的答案。

0 个答案:

没有答案