2016-05-05 13 views
0

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

  • クリーンプロジェクト
  • ランバックエンド
  • 配備バックエンドGAEプロジェクトにプロジェクトをビルドし

    • Gradleファイルを使用してプロジェクトを同期する
    • キャッシュを無効にする/再起動...
    • を削除し、Matchクラスのインポートステートメントを再度追加してから、再作成しました
    • 最初から新しくプロジェクトを作成し、バックエンドを追加し、デフォルトの "MyBean"クラスで同じことをしました。繰り返しますが、既存のメソッドのみを認識し、追加する新しいメソッドはありません

    しかし、このコードは妥当ではありません。それは、それぞれのアプリケーションモジュールが参照しているバックエンドクラス、何とか時間が凍結しているようです。 Matchクラスのいくつかのメソッドをコメントアウトしてからプロジェクトを再構築しても、それらのメソッドは引き続きappモジュールに表示されます。

    私はAndroidスタジオ2.1を途中で使用しています。

    ちょうど私の頭を壁に叩くだけです。

  • +0

    build.gradleファイルに依存関係はどのように設定されていますか? – nilsmagnus

    +0

    @nilsmagnusモジュールapp用のbuild.gradleファイルには、依存関係{...コンパイルプロジェクト(パス: ':バックエンド'、設定: 'android-endpoints')...} –

    答えて

    0

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

    私はこれに関する文書はありませんが、フロントエンドに渡されるjson文字列としてバックエンドクラスを考えることを学びました。どんなメンバーもフロントエンドのgetter/setterでアクセスできますが、それはそれです。構築する他の関数はバックエンドアクセスのみです。

    関連する問題