应用程序支持minSdk=14
并且每ActionBar
都有Activity
。
应用程序在很长一段时间内运行良好,并在每个ActionBar
上显示Activity
。现在我正在编写Android JUnit
Testcases
,但它在行上提供了NullPointException
getActionBar().setDisplayHomeAsUpEnabled(true);
底线getActionBar()
适用于设备,但在测试用例期间返回null
。如果我删除该行,那么testcases就可以了。
以下是活动的样子。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_order); getActionBar().setDisplayHomeAsUpEnabled(true);
//其他东西
}
JUnits
是简单的Android JUnit测试用例,没有任何框架。
public class OrderActivityTest extends ActivityUnitTestCase<OrderActivity> { private OrderActivity activity; public OrderActivityTest() { super(OrderActivity.class); } protected void setUp() throws Exception { super.setUp(); Intent intent = new Intent(getInstrumentation().getTargetContext(),OrderActivity.class); startActivity(intent, null, null); activity = getActivity(); } public void testPreConditions() { assertTrue(activity != null); } }
最后这是运行测试用例时的异常。
java.lang.NullPointerException
at com.example.name.OrderActivity.onCreate(OrderActivity.java:176)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158)
at com.example.name.test.OrderActivityTest.setUp(OrderActivityTest.java:23)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
第176行是getActionBar().setDisplayHomeAsUpEnabled(true);
答案 0 :(得分:0)
getActionBar()可能在这里返回null。标题需要可见,请确保您没有这样的内容:
android:theme="@android:style/Theme.Black.NoTitleBar
这会导致getActionBar()中的错误为null。