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にアップグレードします。これはADT20の既知のバグです。

クリーニング、プロジェクトの再作成などに関する他のすべてのヒントは、問題を永続的に解決するわけではありませんが、バグを再度トリガーするまでの間だけです。

于 2012-07-20T16:43:13.907 に答える
0

clean installフォローを実行してこのエラーを取り除きましたMaven -> Update Project

于 2020-09-16T12:01:11.737 に答える
0

私にとっては、Microsoft Teamsからコードを貼り付けたため、エンコーディングの問題または奇妙な目に見えない文字でした。

Outlook(gmail、whataver)を開き、コードを貼り付け、自分宛にメールを送信して再度コピーすると、正常に機能しました。

UITF-8バリデーターだけでは解決できず、notepad++でも奇妙なことは何も表示されませんでした。

于 2021-08-10T19:08:00.987 に答える