1

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

情况很清楚:VM 找不到默认的无参数构造函数。这在此线程中进行了解释

正如我的研究表明,人们通常会在向其活动的构造函数添加参数时收到此信息,这绝对是不好的。但这不是我们的情况——我们总是可以访问默认构造函数。该异常的另一个原因可能是初始化某些成员时的另一个异常(初始化在默认构造函数中运行,对吗?) - 但我们再次不这样做。所有成员都在 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何时找不到默认构造函数的情况?

4

0 回答 0