3

Application クラスを拡張する VideoApplication クラスがあります。アクティビティを介して渡すことができるように、このクラスに他の Java クラスのオブジェクトを作成しました。

public class VideoApplication extends Application {
      private Client client;
      public Client getClient(){
           return client;
      }
      public void setClient(Client client){
           this.client = client;
      }
}

androidManifest ファイルに次の行を追加しました: android.name=".VideoApplication".

しかし、コード (MainActivity.java) に次の行を追加すると、アプリケーションは ClassCastException 例外をスローします。

VideoApplication appInstance = (VideoApplication)getApplicationContext();

どこが間違っていますか?助けてください。

4

3 に答える 3

2

ClassCastExceptionが発生している可能性があります。getApplication()notを使用してみてくださいgetApplicationContext()

VideoApplication appInstance = (VideoApplication) getApplication();

ContextオブジェクトではなくApplicationオブジェクトが本当に必要なので。

于 2012-10-27T20:58:55.983 に答える
1

確かに私はこれに答えるのが遅れていますが、

android.name=".VideoApplication 

正しくないようです。そうあるべきだと思う

android:name=".VideoApplication 

タイプミスではないことを願っています。

于 2013-07-22T21:12:14.253 に答える
0

インスタンスで getClass().getName() を使用して、実際にどのタイプであるかを確認し、適切なキャストを行うことができます。

于 2012-10-27T21:21:20.783 に答える