0

アプリに Google Cloud バックエンド モジュールを追加しました。それは昨日までうまくいきました。その後、バックエンド クラスに加えた変更を突然認識しなくなりました。たとえば、バックエンドに setId、getId などのメソッドを持つモデル クラス「Match」があります。アプリ モジュールでは、Match クラスをインポートし、そのメソッドも使用しました。そして昨日、このクラスに新しいメソッド「getText」を追加しました。しかし、このメソッドはアプリモジュールのオートコンプリートに表示されず、これを強制的に使用しようとすると「シンボル 'getText' を解決できません」というエラーが表示されました。同期の問題かもしれないと思ったので、次のことを行いました(さまざまな順序で何度も):

  • ビルドプロジェクト
  • きれいなプロジェクト
  • バックエンドを実行
  • バックエンドを GAE プロジェクトにデプロイする
  • プロジェクトを Gradle ファイルと同期する
  • キャッシュの無効化/再起動...
  • Match クラスの import ステートメントを削除して再度追加し、再構築を行いました
  • 新しいプロジェクトをゼロから作成し、バックエンドを追加して、デフォルトの「MyBean」クラスで同じことを行いました。繰り返しますが、既存のメソッドのみを認識し、追加したい新しいメソッドは認識しません

しかし、コードは頑固です。それぞれのアプリ モジュールが参照しているバックエンド クラスが、何らかの理由でフリーズしたようです。Match クラスのいくつかのメソッドをコメントアウトしてからプロジェクトをリビルドしても、それらのメソッドはアプリ モジュールに表示されたままです。

ところで、私は Android Studio 2.1 を使用しています。

今、頭を壁にぶつけています。

4

1 に答える 1

0

その音から、私はこの同じ問題を抱えていました。最終的にわかったことは、プロジェクトのフロントエンドはバックエンドからのみ取得するgettersというsettersことです。これらgetterssettersは、バックエンドのクラスのメンバーに基づいています。Matchと呼ばれるクラスにメンバーがいないと思います。そのため、機能しませんtextでしgetText()た。また、他のメソッドのいくつかを削除/コメントアウトしましたが、対応するメンバーをクラスから削除しなかったに違いありません。これらのメンバーはまだそこにあったため、コンパイルされたフロントエンド クラスはそれらのために と を作成getterssettersます。

これに関するドキュメントは手元にありませんが、バックエンド クラスをフロント エンドに渡される json 文字列と考えるようになりました。メンバーが何であれ、フロントエンドでgetter/を介してアクセスできますが、それだけです。setter構築するその他の関数は、バックエンド アクセスのみです。

于 2016-06-26T06:15:36.057 に答える