令牌语法错误“}”,删除此令牌

问题描述:

我不断收到此错误,说“令牌上的语法错误”}“,删除此令牌。在最后一行,为什么?我正在寻找错误,但我似乎无法找到它。正如你可以看到它是一种服务,每隔一段时间调用一次服务。令牌语法错误“}”,删除此令牌

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

我已经经历了所有的支架消失了,我找不到任何人,是不是它应该是。

编辑:

仍然错误:

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 
+4

...每个人都疯狂地发布了一个答案,建议删除额外的'}'一个简单的10分... – 2012-07-19 23:07:54

+2

除了它的外观,他没有粘贴。有些缩进对他没有任何好处,但正如问题中没有额外的支撑。 – 2012-07-19 23:09:35

+0

哈哈亚历克斯,我已经尝试过,但据我所知,有适当数量的右括号。 – Eric 2012-07-19 23:10:58

这可能不是您的代码的问题,但是Eclipse。重新启动计算机,然后重新构建项目。

如果这不起作用,请尝试编译另一个程序。如果它有效,那么这只是Eclipse的奇怪。

+0

你是对的。我刚刚删除了错误消息,再次编译,然后它工作正常! 谢谢你们! – Eric 2012-07-19 23:24:51

+0

很高兴工作。虽然,@谁低估了我,这是什么与downvote? :/ – cegfault 2012-07-21 05:16:05

+0

Yeap,只是清理项目,它工作得很好 – pedrobisp 2016-01-27 14:13:34

由于粘贴,该错误信息是不正确的,你必须在正确的地方匹配的括号适当数量的(虽然上面的缩进是无情)。然而,除了一个疯狂的编译器角落案例,无法正确匹配大括号,我猜你已经粘贴了除了最后一个大括号,它抱怨。按照错误消息建议的方式进行操作,并删除它建议的标记。

+0

我认为Eclipse已经吓坏了。无论我做什么,即使我删除了整个代码,错误仍然存​​在。 – Eric 2012-07-19 23:18:35

+0

通过运行'Project'菜单中的'Clean'来清除构建输出,看看是否有助于 – 2012-07-19 23:18:59

+0

thx,清理和再次构建 - 这有所帮助。 – liquide 2014-05-05 09:54:14

将您的ADT插件升级到版本20.0.1。这是一个known bug in ADT 20

所有其他提示清理,重新创建项目等都不会永久解决问题,但只会持续一段时间,直到您碰巧触发错误。