2012-07-19 48 views
0

我不斷收到此錯誤,說「令牌上的語法錯誤」}「,刪除此令牌。在最後一行,爲什麼?我正在尋找錯誤,但我似乎無法找到它。正如你可以看到它是一種服務,每隔一段時間調用一次服務。令牌語法錯誤「}」,刪除此令牌

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

回答

5

這可能不是您的代碼的問題,但是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

由於粘貼,該錯誤信息是不正確的,你必須在正確的地方匹配的括號適當數量的(雖然上面的縮進是無情)。然而,除了一個瘋狂的編譯器角落案例,無法正確匹配大括號,我猜你已經粘貼了除了最後一個大括號,它抱怨。按照錯誤消息建議的方式進行操作,並刪除它建議的標記。

+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

0

將您的ADT插件升級到版本20.0.1。這是一個known bug in ADT 20

所有其他提示清理,重新創建項目等都不會永久解決問題,但只會持續一段時間,直到您碰巧觸發錯誤。

相關問題