【问题标题】:Eclipse inserting arg0, arg1 etc. instead of proper parameter names when overriding Android methodsEclipse 在覆盖 Android 方法时插入 arg0、arg1 等而不是正确的参数名称
【发布时间】:2014-01-15 14:32:43
【问题描述】:

当我在 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 4.4.2 的 Android SDK 管理器中安装了“Android SDK 文档”。我是否仍需要以某种方式手动附加文档(甚至源代码?)才能使其可靠地工作,如果需要,我该如何处理?

谢谢!

【问题讨论】:

  • 我不具体了解 Android,但对于 Eclipse 来说,它通常是所需的源代码。
  • 我猜是因为代码中还没有这种类型的声明,尝试做一些int、SqlLightDatabse的变量,并给它一个有意义的名字,然后重写方法,看看它是否采用它或不是
  • @greg-449 - 谢谢!我想这就是我所缺少的。

标签: android eclipse ide


【解决方案1】:

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

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

万一以后链接断开,步骤如下:

  1. 使用 SDK 管理器下载“Android SDK 的源代码”

  2. 在 Eclipse Package Explorer(Android {version} 节点下)中右键单击 android.jar,然后单击属性

  3. 在“Java Source Attachment”下,输入下载的源目录的路径,该目录位于{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)中出现了类似的问题。可以通过 File -> Other Settings -> Default Project Structure 附加源,选择 SDKs,android 平台并在“Sourcepath”选项卡中添加源。

【讨论】:

  • 感谢您的提示。
猜你喜欢
  • 2014-01-03
  • 2011-09-12
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
相关资源
最近更新 更多