安卓教程错误

3
我从Wei-Meng Lee的“Beginning Android Application Development”中借用了以下代码:
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter {

    private static final String TAG = "DBAdapter";
    private static final String DATABASE_NAME = "MyDB";
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_CREATE =
            "create table contacts (_id integer primary key autoincrement, "
                    + "name text not null, email text not null);";
    private final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
    public DBAdapter (Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        
        @Override
        public void onCreate(SQLiteDatabase db)
        {
            try {
                db.execSQL(DATABASE_CREATE);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS contacts");
            onCreate(db);
        }
    }
}

还有更多,但我试图简化。

我得到以下错误:

Description Resource Path Location Type

Syntax error on token ")", { expected after this token DBAdapter.java

onUpgrade的末尾

Syntax error, insert "}" to complete ClassBody DBAdapter.java

Syntax error, insert "}" to complete ClassBody DBAdapter.java

onCreate的末尾

我是Android应用程序新手,所以有人可以帮助我理解这些消息吗?

这是Eclipse显示的内容:

enter image description here


1
你尝试过只插入一个“}”吗? - eric.itzhak
1
看起来叉号被灰掉了,所以错误被解决了?尝试清理并构建。 - Dheeresh Singh
我需要点击保存按钮来更新我所有的编辑! - John
你能给我们展示一下错误的截图吗?不要只展示灰色的部分。 - D-32
没有错误,一切正常,你做错了什么。 - Simon Dorociak
3个回答

2

这些是编译器的消息,告诉你文件中的大括号 {} 和/或括号 () 不平衡。如果你复制/粘贴了这段代码,请确保你没有错过结尾的大括号之类的东西。你发布的代码看起来是平衡的,所以问题可能在文件的后面。

希望有所帮助。


屏幕截图中的灰色 X 标记并不表示 Eclipse 中存在的错误,它们标记的是之前已经被纠正的错误。当前的错误会以红色标记显示。 - devunwired
实际上,我只是从SO复制粘贴过来,然后灰色的“x”就消失了(按下Ctrl-S之后)。这让我得出结论,错误消息并不像我所认为的那样及时更新。谢谢。 - John

0

是的,如上所述,需要一个大括号。特别是如果你只是复制/粘贴代码。右键单击错误,点击“转到”,并添加/删除(根据您的问题)所需的标记。


0
尝试在构造函数前添加public关键字。
DatabaseHelper(Context context)

应该是

public DatabaseHelper(Context context)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接