android - 通知 Activity 崩溃

标签 android crash notificationmanager

package com.example.khatrimann.notification;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

    Intent intent = new Intent(this, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

    NotificationCompat.Builder b = new NotificationCompat.Builder(this);

    b.setTicker("khatrimann")
            .setContentTitle("Default notification")
            .setContentText("Hey There.")
            .setContentIntent(contentIntent);


    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(1, b.build());
}
}

该代码已经在棉花糖上测试过,它崩溃了并且无法正常工作。

android.support.v4和v7都一一尝试,然后应用崩溃。

LOGCAT如下:
11-20 18:24:59.623 4146-4146/com.example.khatrimann.notification E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: com.example.khatrimann.notification, PID: 4146
                                                                               Theme: themes:{default=overlay:system, iconPack:system, fontPkg:system, com.android.systemui=overlay:system, com.android.systemui.navbar=overlay:system}
                                                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.khatrimann.notification/com.example.khatrimann.notification.MainActivity}: java.lang.IllegalArgumentException: Invalid notification (no valid small icon): Notification(pri=0 contentView=com.example.khatrimann.notification/0x1090085 vibrate=null sound=null tick defaults=0x0 flags=0x0 color=0x00000000 vis=PRIVATE)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                                                                                   at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                   at android.os.Looper.loop(Looper.java:148)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                                   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.khatrimann.notification/0x1090085 vibrate=null sound=null tick defaults=0x0 flags=0x0 color=0x00000000 vis=PRIVATE)
                                                                                   at android.app.NotificationManager.notify(NotificationManager.java:223)
                                                                                   at android.app.NotificationManager.notify(NotificationManager.java:195)
                                                                                   at com.example.khatrimann.notification.MainActivity.onCreate(MainActivity.java:32)
                                                                                   at android.app.Activity.performCreate(Activity.java:6251)
                                                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) 
                                                                                   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                   at android.os.Looper.loop(Looper.java:148) 
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5461) 
                                                                                   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) 

错误显示为主要故障

最佳答案

创建通知时,必须添加一个小图标,例如此代码示例。

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

关于android - 通知 Activity 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698757/

相关文章:

ios - objectForKey 崩溃? iOS

ios - iOS 应用程序崩溃报告

android - 如何将变量从notificationmanager传递到android中的 Activity

安卓通知问题

android - 警报管理器触发通知

android - 顺时针和逆时针路径的路径填充行为不同

Java 正则表达式在 Android 上的工作方式与在 Java 上的工作方式不同

android - 在应用程序计费没有 ui

android - 设备休眠时声音停止 flex mobile

visual-studio-2010 - 在 Visual Studio 2010 之外运行时游戏崩溃