Eclipse 在覆盖 Android 方法时插入 arg0、arg1 等,而不是正确的参数名称



当我在Eclipse中覆盖Android类的方法时,我得到了无用的参数名称,如"arg0","arg1"等。例如,当覆盖SQLiteOpenHelper的方法时,我得到:

@Override
public void onCreate(SQLiteDatabase arg0) {
    // TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    // TODO Auto-generated method stub
}

我找到了有关此的各种帖子,但似乎没有一个公认的解决方案对我有用。这也很奇怪,因为它似乎只在某些时候发生。例如,上述测试中的构造函数具有正确命名的参数。

我已经在Android SDK Manager for Android 4.4.2中安装了"Android SDK文档"。我是否仍然需要以某种方式手动附加文档(甚至源代码?)才能可靠地工作,如果是这样,我该怎么做?

谢谢!

正如评论中提到的@greg-449,需要附加Android源代码才能正常工作。

按照此链接中的步骤似乎可以解决此问题。

如果将来链接断开,步骤如下:

  1. 使用 SDK 管理器下载"Android SDK 源代码"

  2. 右键单击 Eclipse 包资源管理器中的android.jar(在Android {version}节点下),然后单击属性

  3. 在"Java 源代码附件"下,输入下载的源代码目录的路径,该路径与 {sdk}/sources/android-{version} 行一致

然后我得到这个:

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
}

更新:作为参考,Android Studio(撰写本文时为v0.4.2)中也出现了类似的问题。可以通过文件 -> 其他设置 ->默认项目结构附加源,选择 SDK、android 平台并在"源路径"选项卡中添加源。

最新更新