3

我有 VideoApplication 类,它扩展了 Application 类。我在这个类中创建了我的另一个 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();

因为你真的想要一个 Application 对象而不是 Context 对象。

于 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 回答