gpt4 book ai didi

java - ProviderTestCase 子类的 setUp() 方法中的 NPE

转载 作者:太空狗 更新时间:2023-10-29 13:26:59 27 4
gpt4 key购买 nike

目前我的 ProviderTestCase2 中有以下 setUp() 方法。在调用 newResolverWithContentProviderFromSql() 之后,它会在 Android API 深处抛出一个 NPE。我做错了什么,我该如何解决?

public void setUp() throws IllegalAccessException, InstantiationException {
this.resolver = newResolverWithContentProviderFromSql(this.getMockContext(),
"test.", BaseballCardProvider.class,
BaseballCardContract.AUTHORITY,
BaseballCardSQLHelper.DATABASE_NAME,
BaseballCardSQLHelper.SCHEMA_VERSION, CREATE_TABLE
+ INSERT_DATA);
}

这是供引用的堆栈跟踪:

java.lang.NullPointerException  
at android.test.RenamingDelegatingContext.openOrCreateDatabase(RenamingDelegatingContext.java:146)
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:215)
at android.database.DatabaseUtils.createDbFromSqlStatements(DatabaseUtils.java:1315)
at android.test.ProviderTestCase2.newResolverWithContentProviderFromSql(ProviderTestCase2.java:219)
at bbct.android.common.provider.test.BaseballCardProviderTest.setUp(BaseballCardProviderTest.java:44)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)

最佳答案

由于您已经覆盖了 setUp() 但没有调用 super.setUp(),所以 TestCase 不完整,因为像 documentation说:

This framework is set up automatically by the base class' setUp() method. If you override this method, you must call the super method as the first statement in your override.

关于java - ProviderTestCase 子类的 setUp() 方法中的 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447376/

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