Android Annotations EActivity 未获得 Extras 之一

Android Annotations EActivity isn't getting one of the Extras

我在我的 NavControllerActivity 上使用 Android 注释,它有两个 @Extras。一个额外的是可打包的自定义 class、BaseEntity,另一个是 java.lang.Class 对象(可序列化)。但是,当我的 Activity 启动时,我只得到 entity,没有得到 rootFragmentClass

@EActivity
public class NavControllerActivity extends AppCompatActivity {

    @Extra
    BaseEntity entity;

    @Extra
    Class rootFragmentClass;

    // ....

    @AfterExtras
    public void setupViews() {

        Log.d("Nav", "rootFragmentClass: "+this.rootFragmentClass);
        Log.d("Nav", "entity: "+this.entity);


    }

}

我这样启动 activity:

NavControllerActivity_.intent(this)
    .rootFragmentClass(EditAnimalFragment_.class)
    .entity(entity)
    .start();

执行setupViews()时,我的entity有正确的值,但rootFragmentClass为空。

我是不是做错了什么?

我修改了一些代码,解决了这个问题,这是我对真正出了问题的假设。

我犯的错误是在我的 Parcel in/out 代码中。我正在向 Parcel 写入 20 个字段,但是从 Parcel 读取时我只读取了 15 个字段。确保我的输入代码与我的输出代码相匹配,问题就消失了。

当我第一次遇到这个问题时我没有得到任何异常,但是当我对出了什么问题进行更多调查时 () 我终于得到了一个异常。

这最终让我意识到我的输入代码与输出代码不匹配。

我认为发生的事情是,由于仍有数据要解包,它搞砸了另一个需要解包的项目,并抛出了一个似乎无关的异常。