0

我在我的应用中添加了一个 Google Cloud 后端模块。直到昨天它工作得很好。之后它突然拒绝承认我对后端类所做的任何更改。例如,我的后端有一个模型类“Match”,它具有 setId、getId 等方法。在应用程序模块中,我导入了 Match 类并使用了它的方法。然后昨天,我在这个类中添加了一个新方法“getText”。但是如果我尝试强制使用此方法,则此方法未显示在应用程序模块自动完成中并显示“无法解析符号'getText'”错误。我认为这可能是一个同步问题,所以我做了以下事情(多次以不同的顺序):

  • 构建项目
  • 清洁工程
  • 运行后端
  • 将后端部署到 GAE 项目
  • 将项目与 Gradle 文件同步
  • 使缓存无效/重新启动...
  • 删除并再次添加了 Match 类的导入语句,然后进行了重建
  • 从头开始创建一个新项目,添加一个后端并使用默认的“MyBean”类做同样的事情。同样,它只会识别预先存在的方法,而不会识别我要添加的新方法

但是代码是不屈不挠的。似乎各个应用程序模块所指的后端类不知何故及时冻结了。即使我注释掉 Match 类中的一些方法,然后重新构建项目,这些方法仍然出现在 app 模块中。

顺便说一句,我正在使用 Android Studio 2.1。

现在只是把我的头撞到墙上。

4

1 回答 1

0

从它的声音来看,我有同样的问题。我最后发现的是,项目的前端只能从后端获取getters和获取。setters这些getterssetters基于后端类的成员。我猜你在课堂上没有一个Match名为的成员text,这就是为什么getText()从来没有工作过的原因。另外,我敢打赌你删除/注释掉了其他一些方法,但没有从类中删除相应的成员。因为这些成员仍然存在,所以编译的前端类会为它们创建getters和创建setters

我手头没有这方面的任何文档,但我学会了将后端类视为传递给前端的 json 字符串。无论有什么成员,都可以通过前端的getter/访问,仅此而已。setter您构建的任何其他功能仅是后端访问。

于 2016-06-26T06:15:36.057 回答