2010-07-19 75 views
37

我试图创建自定义一个应用程序类,如下所示:安卓:java.lang.IllegalAccessException尝试使用自定义时,“应用程序”类

  1. 创建 应用的空白子类,称为MyApp的
  2. 在清单中,我的应用程序指定 机器人::名称: <application android:name=".MyApp" ...

然而,当我尝试运行我的应用程序,我得到: java.lang.RuntimeException: Unable to instantiate application com.test.MyApp java.lang.IllegalAccessException: access to class not allowed

回答

100

请确保您的自定义类是public,有一个public零参数构造函数,并且该构造函数链接到超类的构造函数。

+2

我遇到了类似的例外,我试图启动一项服务。事实证明,服务类是意外包装私人,因此你的解决方案帮助我找到问题,谢谢! – JonnyBoy 2013-06-28 20:51:58

2

我同意CommonsWare。如果扩展android.app.Application来为您的项目定义自定义应用程序,请确保您已将该类标记为公共和公共非公共构造函数构造函数。

但是,在android.app.Application API其中提到,通常不需要子类Application。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。

希望这会有所帮助。

干杯。