2016-11-19 157 views
-1

我想打一个小的通知程序,我得到这个错误 恳求任何一个可以帮助我需要它为我的项目Android通知AndroidRuntime:致命异常

11-19 23:42:40.297 5971-5971/com.example.codeiv.ewtest E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: com.example.codeiv.ewtest, PID: 5971 
                    java.lang.IllegalStateException: Could not execute method for android:onClick 
                     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
                     at android.view.View.performClick(View.java:5198) 
                     at android.view.View$PerformClick.run(View.java:21147) 
                     at android.os.Handler.handleCallback(Handler.java:739) 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5417) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                     Caused by: java.lang.reflect.InvocationTargetException 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                     at android.view.View.performClick(View.java:5198)  
                     at android.view.View$PerformClick.run(View.java:21147)  
                     at android.os.Handler.handleCallback(Handler.java:739)  
                     at android.os.Handler.dispatchMessage(Handler.java:95)  
                     at android.os.Looper.loop(Looper.java:148)  
                     at android.app.ActivityThread.main(ActivityThread.java:5417)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                     Caused by: java.lang.IllegalArgumentException: Invalid notification (no valid small icon): Notification(pri=0 contentView=com.example.codeiv.ewtest/0x1090085 vibrate=null sound=null defaults=0x0 flags=0x0 color=0x00000000 vis=PRIVATE) 
                     at android.app.NotificationManager.notify(NotificationManager.java:222) 
                     at android.app.NotificationManager.notify(NotificationManager.java:194) 
                     at com.example.codeiv.ewtest.main_menu.test1(main_menu.java:54) 
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  
                     at android.view.View.performClick(View.java:5198)  
                     at android.view.View$PerformClick.run(View.java:21147)  
                     at android.os.Handler.handleCallback(Handler.java:739)  
                     at android.os.Handler.dispatchMessage(Handler.java:95)  
                     at android.os.Looper.loop(Looper.java:148)  
                     at android.app.ActivityThread.main(ActivityThread.java:5417)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

11-19 23:42:42.658 5971 -5971/com.example.codeiv.ewtest I/Process:发送信号。 PID:5971 SIG:9

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

public void inf(View view) { 
    Intent intent = new Intent(this , nfo.class); 
    startActivity(intent); 
} 

public void test1(View view){ 
    int mId=1; 
    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setContentTitle("My notification") 
        .setContentText("Hello World!"); 
    Intent resultIntent = new Intent(this, nfo.class); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    stackBuilder.addParentStack(nfo.class); 
    stackBuilder.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = 
      stackBuilder.getPendingIntent(
        0, 
        PendingIntent.FLAG_UPDATE_CURRENT 
      ); 
    mBuilder.setContentIntent(resultPendingIntent); 
    NotificationManager mNotificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(mId, mBuilder.build()); 

    mId++; 
} 

回答

0

设置了notitification的图标(可以用于测试Android Studio中默认的图标),并确保您的按钮的onClick方法名称即test1的()是相同名称的设定在按钮的属性属性中。

NotificationCompat.Builder mBuilder = 
     new NotificationCompat.Builder(this) 
       .setContentTitle("My notification") 
       .setContentText("Hello World!"); 
       .setSmallIcon(R.drawable.cast_ic_notification_0) 
+0

谢谢,它与我搭配 –

+0

很高兴为您服务!不用谢 – ctu

相关问题