Syntax error on token "}", delete this token
Ich bekomme immer diese Fehlermeldung "Syntax error on token "}", delete this token." in der letzten Zeile, warum? Ich habe auf der Suche nach dem Fehler aber ich kann nicht scheinen, um es zu finden. Wie Sie sehen können, es ist ein service-Aufruf auf einen anderen Dienst jeder einmal in eine Weile.
package com.iggeman.updater;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class UpdaterService extends Service {
private static final String TAG = UpdaterService.class
.getSimpleName();
private Updater updater;
public boolean isRunning = false;
@Override
public IBinder onBind(Intent intent) {
//TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
//TODO Auto-generated method stub
super.onCreate();
updater = new Updater();
Log.d(TAG, "onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
//TODO Auto-generated method stub
super.onStart(intent, startId);
if (this.isRunning == false) {
updater.start();
this.isRunning = true;
}
Log.d(TAG, "onStart");
}
@Override
public synchronized void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
if (this.isRunning) {
updater.interrupt();
}
updater = null;
Log.d(TAG, "onDestroy");
}
class Updater extends Thread {
static final long DELAY = 10000;
private boolean isRunning = false;
public Updater() {
super("Updater");
}
@Override
public void run() {
//TODO Auto-generated method stub
super.run();
isRunning = true;
while (isRunning) {
try {
//Do something
startService(new Intent(getBaseContext(), StartServiceTwo.class));
Log.d(TAG, "Updater running");
Thread.sleep(DELAY);
} catch (InterruptedException e) {
//interrupted
isRunning = false;
}
} //while
}
public boolean isRunning() {
return this.isRunning();
}
}
}
Ich gegangen durch alle Klammern und ich kann nicht finden, dass jemand nicht da, wo es sein soll.
Edit:
Immer noch den Fehler:
package com.iggeman.updater;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class UpdaterService extends Service {
private static final String TAG = UpdaterService.class
.getSimpleName();
private Updater updater;
public boolean isRunning = false;
@Override
public IBinder onBind(Intent intent) {
//TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
//TODO Auto-generated method stub
super.onCreate();
updater = new Updater();
Log.d(TAG, "onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
//TODO Auto-generated method stub
super.onStart(intent, startId);
if (this.isRunning == false) {
updater.start();
this.isRunning = true;
}
Log.d(TAG, "onStart");
}
@Override
public synchronized void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
if (this.isRunning) {
updater.interrupt();
}
updater = null;
Log.d(TAG, "onDestroy");
}
class Updater extends Thread {
static final long DELAY = 10000;
private boolean isRunning = false;
public Updater() {
super("Updater");
}
@Override
public void run() {
//TODO Auto-generated method stub
super.run();
isRunning = true;
while (isRunning) {
try {
//Do something
startService(new Intent(getBaseContext(), StartServiceTwo.class));
Log.d(TAG, "Updater running");
Thread.sleep(DELAY);
} catch (InterruptedException e) {
//interrupted
isRunning = false;
}
} //while
} //Run
} //Class updater
public boolean isRunning() {
return this.isRunning();
}
} //Main body
- ...und alle hektisch posts eine Antwort darauf hindeutet, löschen Sie die zusätzlichen
}
für ein einfaches 10 Punkte... - Außer durch den es scheint so, als klebte er nicht. Einige der Einzüge nicht tun ihm keinen gefallen, aber wie ist die Frage gibt es nicht eine zusätzliche Stütze.
- Haha Alex, ich habe das ausprobiert, aber soweit ich sehen kann, gibt es die richtige Menge der schließenden Klammern.
- Auto-format (oder hover-match der parens) und prüfen Sie erneut.
- es entspricht der main-Klasse. Der auf der gleichen Ebene Einzug oben, es entspricht der inneren Klasse
- Ja, ich dachte die main-Klasse geschlossen wurde oben auf den ersten .. ich Schuld formatieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist wahrscheinlich nicht ein Problem mit Ihrem code, sondern Eclipse. Starten Sie den computer neu, und dann neu erstellen Sie das Projekt.
Wenn das nicht funktioniert, versuchen Sie das kompilieren mit einem anderen Programm. Wenn es funktioniert, dann ist es nur Eclipse als seltsam.
Als-eingefügt, die Fehlermeldung ist fehlerhaft und Sie haben die richtige Anzahl von zusammengehörenden Klammern an den richtigen stellen (obwohl Sie die Einkerbung oben ist nachtragend). Jedoch, abgesehen von einer verrückten compiler-Ecke-Fall, die können nicht mit Klammern korrekt, ich vermute, Sie haben eingefügt, alle aber, die Letzte Stütze, die es beschweren. Machen Sie es wie die Fehlermeldung schon sagt und löschen Sie die Spielmarke auf die Linie schlägt.
Clean
von derProject
Menü und sehen, ob das hilftAktualisieren Sie Ihre ADT-plugin auf die version 20.0.1. Dies ist ein bekannte Fehler im ADT-20.
Alle anderen Tipps für die Reinigung, re-erstellen Sie das Projekt, und so weiter nicht lösen das Problem dauerhaft, sondern nur für eine Weile, bis Sie zufällig zum Auslöser der Fehler wieder.