gpt4 book ai didi

java - Android Parcel.obtain() 返回空值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:20:05 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序 (API 15) 并在尝试编写单元测试时遇到以下问题:

我使用 android.os.Parcel 来保存一个类(例如,如果屏幕翻转)并将它发送到另一个 Activity。如果我尝试像这样对 Parcel 方法进行单元测试(我从互联网上得到的):

@Test
public void testParcel() {
Comment test = new Comment();
test.setId(testNr0Id);
test.setComment(testNr0String);


// Obtain a Parcel object and write the parcelable object to it:
Parcel parcel = Parcel.obtain();
test.writeToParcel(parcel, 0);

// After you're done with writing, you need to reset the parcel for reading:
parcel.setDataPosition(0);

// Reconstruct object from parcel and asserts:
Comment createdFromParcel = Comment.CREATOR.createFromParcel(parcel);
assertEquals(test, createdFromParcel);
}

然后我得到一个 NullPointerException,因为从 Parcel.obtain() 返回的 Parcel 是空的。 JavaDoc 只是说这个方法“从池中返回一个包裹对象”。现在我的问题是:哪个游泳池?为什么这个 Parcel-Object 是空的?有什么关于如何运行此测试的建议吗?

谢谢你的帮助

迈克尔

最佳答案

我遇到了同样的问题。但是,在我将测试从 test 目录移动到 androidTest 目录后,一切都开始正常工作。我认为这是因为 Parcel 类是系统一类,因此也需要对它进行检测。

关于java - Android Parcel.obtain() 返回空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com