2013-03-12 11 views
9

Nel codice seguente, Eclipse trovato un errore:Problema con NotificationCompact.Builder e ActionBarSherlock

The method build() is undefined for the type NotificationCompat.Builder 

Tutto ha funzionato bene prima di aggiungere il ActionBarSherlock (segue this tutorial).

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.app.TaskStackBuilder; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v4.app.NotificationCompat; 

public class NotificationActivity extends BroadcastReceiver { 

    NotificationManager nm; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     nm = (NotificationManager) context 
       .getSystemService(Context.NOTIFICATION_SERVICE); 
     int notifyID = 1; 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
       context) 
       .setSmallIcon(R.drawable.zcicon) 
       .setAutoCancel(true) 
       .setDefaults(
         Notification.DEFAULT_SOUND 
           | Notification.DEFAULT_LIGHTS) 
       .setTicker("mytitle").setContentTitle("mycontent") 
       .setContentText("text, text"); 
     Intent resultIntent = new Intent(context, CalcareReader.class); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); 
     // Adds the back stack for the Intent (but not the Intent itself) 
     stackBuilder.addParentStack(MyActivity.class); 
     // Adds the Intent that starts the Activity to the top of the stack 
     stackBuilder.addNextIntent(resultIntent); 
     PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, 
       PendingIntent.FLAG_UPDATE_CURRENT); 
     mBuilder.setContentIntent(resultPendingIntent); 

     nm.notify(notifyID, mBuilder.build()); // error here 
    } 
} 

risposta

21

build() è stato aggiunto in una nuova versione del pacchetto di supporto Android. A seconda di come hai ottenuto e configurato ActionBarSherlock, potresti utilizzare un'edizione precedente del pacchetto di supporto Android. Assicurati di aver scaricato l'ultimo scaricato in SDK Manager, quindi usa quello android-support-v4.jar sia nel progetto ActionBarSherlock che nel progetto principale dell'applicazione.

+0

Opere grazie !! [collegamento] (http://stackoverflow.com/questions/12793722/error-on-add-library-project-in-eclipse) –

+0

>> "android-support-v4.jar sia nel progetto ActionBarSherlock che nella tua applicazione principale progetto." Attualmente no. Ne hai bisogno solo uno nel progetto ActionBarSherlock. –

+0

@DoctororDrive: vero. Tuttavia, se il vecchio JAR esiste in entrambi i progetti, la sua sostituzione in uno solo causerà errori di compilazione. Entrambi i progetti necessitano dello stesso JAR o semplicemente del JAR in ActionBarSherlock e non hanno il JAR nel progetto principale. – CommonsWare

0

build() è da una versione precedente di Android-supporto-v4.jar

[Se si utilizza ActionBar Sherlock]

1 Aggiornare la libreria di supporto di Android SDK da

2 Copia incolla questo alla cartella lib/o aggiornare il riferimento sul percorso

3 Fare lo stesso con il progetto sherlockactionbar. Fate attenzione, se si dispone di un androide-support2-v4.jar, eliminarlo e aggiungere solo l'androide-supporto-v4.jar

4 Pulire

Problemi correlati