InstantiationException,newInstance失败:没有<init>,而Activity </init>中只有默认构造函数

时间:2011-02-11 14:10:01

标签: android instantiationexception

我们在创建Activity的实例时收到了InstantiationException的堆栈跟踪。 日志有newInstance failed: no <init>()消息

情况很明显:VM无法找到默认的无参数构造函数。这在this thread

中有解释

正如我的研究表明,人们在向活动的构造者添加参数时通常会收到这个,这肯定是不好的。但这不是我们的情况 - 我们总是可以访问默认构造函数。 初始化某个成员时,该异常的另一个原因可能是另一个异常(初始化是在默认构造函数中运行的,对吗?) - 但我们再次不这样做。所有成员都在onCreate()方法中初始化。

一些细节(名称已更改): 活动被添加到AndroidManifest.xml:

<manifest
    package="app.name"
    ....>
    ....
    <activity
        android:name="app.name.activity.OurActivity"
        android:label="@string/NAME">
    </activity>

现在我们创建意图的方式可能看起来很奇怪,但它适用于所有情况:

Context packageContext = layoutInflater.getContext().createPackageContext("app.name", 0);
Intent intent = new Intent(packageContext, OurActivity.class);
...startActivity(intent);

我认为这可能是一个问题,但是: 1)这个工作好几个月 2)同一个客户端在另一个活动中获得相同的异常,该活动开始使用活动作为上下文;

我无法重现异常以理解/修复它。但不知何故,我们的一位客户得到了它。他有Droid ERIS(Verizon)设备

有什么想法?有什么情况我不知道VM何时找不到默认构造函数?

0 个答案:

没有答案