gpt4 book ai didi

android - 使用 Robolectric 构建 fragment 时无法找到资源 ID

转载 作者:行者123 更新时间:2023-11-30 00:35:17 24 4
gpt4 key购买 nike

使用 Robolectric 3.3.2 我正在尝试构建一个 fragment 并将其附加到一个 Activity 。我尝试了 Robolectric.buildFragment(MyFragment.class, MyActivity.class).create() 但出现异常 android.content.res.Resources$NotFoundException: Unable to find resource ID #0x1 in包 [android, com.my.package.for.android]

我还尝试分别构建 Activity 和 fragment 并使用 fragment 管理器附加 fragment ,但似乎 fragment 自动附加到虚拟 Activity ,所以我无法将它附加到我的 Activity 。

简约的例子:

@RunWith(RobolectricTestRunner.class)
@Config(sdk = Build.VERSION_CODES.KITKAT, manifest = "./src/main/AndroidManifest.xml")
public class MyTest {

@Test
public void WorkingTest1() throws Exception {
Robolectric.buildFragment(MyFragment.class).create();
}

@Test
public void WorkingTest2() throws Exception {
Robolectric.buildActivity(MyActivity.class).create();
}

@Test
public void FailingTest() throws Exception {
Robolectric.buildFragment(MyFragment.class, MyActivity.class).create();
}

public static class MyActivity extends Activity {
}

public static class MyFragment extends Fragment {
}

}

最佳答案

我已经为我的 Activity 定义了一个根 Activity 框架,所以我可以为 Robolectric 的 FragmentController 内的 FragmentManager 事务提供它:

Robolectric
.buildFragment(MyFragment.class, MyActivity.class)
.create(R.id.my_activity_frame);

在我的 Activity 中:

setContentView(R.id.my_activity_frame);

关于android - 使用 Robolectric 构建 fragment 时无法找到资源 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43498773/

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