开发者

InstantiationException, newInstance failed: no <init>, while there is only default constructor in Activity

We received stack trace of InstantiationException while creating instance of Activity. Log has newInstance failed: no <init>() message

The situation is quite clear: VM can't find default parameterless constructor. This is explained in this thread

As my research shown people usually receive this when they add parameters to constructors of their Activities, which definitely is bad. But this is not our case - we always have access to default constructor. Another reason of that exception could be another exception while initializing some member(initialiation is run in default constructor, right?) - but again we don't do that. All members are initialized in onCreate() method.

Some details(names changed): activity is added to AndroidManifest.xml:

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

Now the way that we create the intent may look strange, but it works in every case:

Context packageContext = layoutInflater.getContext().createPackageContext("app.name", 0);
Intent intent = new Intent(packageContext, OurActivity.class);
...startActivity(intent);
开发者_运维知识库

I would think that this could be a problem, but: 1) this works fine for months 2) same client got same exception in another activity which is start using activity as a context;

I can't reproduce the exception to understand/fix it. But somehow one of our clients got it. He has Droid ERIS(Verizon) device

Any thoughts? Is there any case I don't know about when VM will not find the default constructor?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜