Notification.builder的方法build()未定义

时间:2014-09-18 08:22:05

标签: java android libraries

我疯狂地建立通知。 我在网上看到我需要更新我的库。 我去右键点击了这个项目;礼节和我取消选中,并在下载最后一个包之后,重新填写了我的库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)

2 个答案:

答案 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());
        }