【问题标题】:RuntimeException when trying to use android.app.Application尝试使用 android.app.Application 时出现 RuntimeException
【发布时间】:2010-02-23 10:52:57
【问题描述】:

我正在尝试使用扩展 android.app.Application 的自定义类 (be.myname.rssreader.util.Global),但是当我尝试使用其访问器时,出现以下异常:

02-23 11:42:12.973: 错误/AndroidRuntime(2050): java.lang.RuntimeException:无法 开始活动 组件信息{be.myname.rssreader/be.myname.rssreader.view.RSSReader}: java.lang.NullPointerException

在你问之前,是的,它在我的清单中,如下:

<application android:name=".util.Global" android:icon="@drawable/icon"
        android:label="@string/app_name" android:debuggable="true">

抛出异常的代码是这样的:

global.setService(new FeedService(getApplicationContext()));

它被放置在我的主 Activity 的 onCreate 中,紧接在调用 super.onCreate 和 setContentView 之后。

任何想法为什么会不断抛出异常?

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    你检查global不为空吗?

    编辑: 如果您尝试在 Activity 或 Service 中访问您的 Application 类,则必须像这样检索它:

    /* e.g. Global is the name of your class which extends Application */
    this.global = (Global) getApplication()
    

    【讨论】:

    • 是的,我忘了说:global其实是null,但是它的onCreate方法被执行了(我在里面放了一个Log语句)。根据 Android 文档:“......这将导致在创建应用程序/包的进程时为您实例化该类。” (developer.android.com/reference/android/app/Application.html) 所以我不明白为什么它是空的。
    • 好的,所以您正尝试从另一个活动访问名为 Global 的应用程序类?
    • 是的,我是。文档让我相信这应该是可能的。我可能只是错过了一些东西。无论哪种方式,我使用一个简单的类“解决”了这个问题,该类具有我在主 onCreate() 中设置的静态字段。
    • 看看我昨天编辑的回复,你用getApplication()检索你的应用类吗?
    【解决方案2】:

    检查this link。 在运行您的应用程序之前尝试./emulator -wipe -data

    【讨论】:

    • 嗯..我在我的英雄上运行它,所以我认为擦除不是一个好主意。但是我尝试在模拟器上执行该应用程序(可以肯定的是在擦除之后)并且仍然是相同的异常......
    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2013-10-31
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多