我疯狂地建立通知。 我在网上看到我需要更新我的库。 我去右键点击了这个项目;礼节和我取消选中,并在下载最后一个包之后,重新填写了我的库android.support.v7。 当我重新启动eclipse时,我有同样的错误。 我想我不知道如何更新库。请帮帮我 编辑:我将notification.builder更改为notificationcompat.builder() 我可以编译项目,但现在我有这个错误日志
package com.example.simplenotification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RemoteViews;
public class MainActivity extends Activity {
private static final int MY_NOTIFICATION_ID = 0;
private int mNotificationCount;
private final CharSequence tickerText ="this is tickerText";
private final CharSequence contentTitle="this contentTitle";
private final CharSequence contentText="this coontentText";
private Intent mNotificationIntent;
private PendingIntent mContentIntent;
RemoteViews mContentView = new RemoteViews("com.example.simplenotification.StatusBarWithCustomView", R.layout.custom_view);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNotificationIntent = new Intent(getApplicationContext(),AppGet.class);
mContentIntent = PendingIntent.getActivity(getApplicationContext(), 0, mNotificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
final Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v){
mContentView.setTextViewText(R.id.textView1, contentText + "(" + ++mNotificationCount +")");
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(MainActivity.this)
.setTicker(tickerText)
.setSmallIcon(android.R.drawable.stat_notify_more)
.setAutoCancel(true)
.setContentIntent(mContentIntent)
.setContent(mContentView);
NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(MainActivity.this);
mNotificationManager.notify(MY_NOTIFICATION_ID,notificationBuilder.build());
}
}
});
}
}
错误日志显示:
09-18 11:19:22.344: E/AndroidRuntime(978): FATAL EXCEPTION: main
09-18 11:19:22.344: E/AndroidRuntime(978): android.app.RemoteServiceException: Bad notification posted from package com.example.simplenotification: Couldn't expand RemoteViews for: StatusBarNotification(package=com.example.simplenotification id=0 tag=null notification=Notification(contentView=com.example.simplenotification.StatusBarWithCustomView/0x7f030019 vibrate=null,sound=null,defaults=0x0,flags=0x10) priority=0)
09-18 11:19:22.344: E/AndroidRuntime(978): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1259)
09-18 11:19:22.344: E/AndroidRuntime(978): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 11:19:22.344: E/AndroidRuntime(978): at android.os.Looper.loop(Looper.java:137)
09-18 11:19:22.344: E/AndroidRuntime(978): at android.app.ActivityThread.main(ActivityThread.java:4340)
09-18 11:19:22.344: E/AndroidRuntime(978): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 11:19:22.344: E/AndroidRuntime(978): at java.lang.reflect.Method.invoke(Method.java:511)
09-18 11:19:22.344: E/AndroidRuntime(978): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-18 11:19:22.344: E/AndroidRuntime(978): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-18 11:19:22.344: E/AndroidRuntime(978): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
如果您想使用支持库中的通知构建器,我认为您需要支持库版本4。尝试导入
android.support.v4.app.NotificationCompat;
并使用:
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
我假设你想要使用支持版本,因为你在谈论支持库。否则,如果您想使用普通的notifybuilder,我就不会看到错误的位置。添加此作为答案,因为我没有足够的代表发表评论。
答案 1 :(得分:0)
更改您的代码如下:
public void onClick(View v){
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
.setTicker(tickerText)
.setSmallIcon(android.R.drawable.stat_notify_more)
.setAutoCancel(true)
.setContentIntent(mContentIntent)
NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(getApplicationContext());
mNotificationManager.notify(MY_NOTIFICATION_ID,notificationBuilder.build());
}