1

我不断收到此错误消息,提示“令牌“}”上的语法错误,请删除此令牌。” 在最后一行,为什么?我一直在寻找错误,但似乎找不到。如您所见,它是一项服务,每隔一段时间就会调用另一项服务。

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

5 回答 5

6

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

如果这不起作用,请尝试使用其他程序进行编译。如果它有效,那么它只是 Eclipse 很奇怪。

于 2012-07-19T23:21:18.783 回答
0

粘贴时,错误消息不正确,并且您在正确的位置有正确数量的匹配大括号(尽管上面的缩进是不可原谅的)。但是,除非出现无法正确匹配大括号的疯狂编译器极端情况,否则我猜您已经粘贴了除了它抱怨的最后一个大括号之外的所有内容。按照错误消息的建议执行并删除它建议的行上的令牌。

于 2012-07-19T23:04:49.773 回答
0

将您的 ADT 插件升级到版本 20.0.1。这是ADT 20 中的一个已知错误

所有其他关于清理、重新创建项目等的技巧都不会永久解决问题,而只会暂时解决问题,直到您碰巧再次触发错误。

于 2012-07-20T16:43:13.907 回答
0

对我来说,这是一个编码问题或一些奇怪的不可见字符,因为我从 Microsoft Teams 粘贴了一些代码。

我打开Outlook(gmail,whataver),粘贴代码,将电子邮件发送给自己并再次复制,然后它工作正常。

我无法使用唯一的 UITF-8 验证器来解决它,并且 notepad++ 也没有显示任何奇怪的东西。

于 2021-08-10T19:08:00.987 回答
0

clean install我通过运行一个后跟摆脱了这个错误Maven -> Update Project

于 2020-09-16T12:01:11.737 回答