gpt4 book ai didi

关于获取上下文的 Android ActivityInstrumentationTestCase2 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 03:46:01 25 4
gpt4 key购买 nike

我有一个 ActivityInstrumentationTestCase2,但我没有运气获得测试的上下文。

package com.vsnetworks.vsnmedia.test;

import org.json.JSONObject;

import android.app.Activity;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;

import com.vsnetworks.vsnmedia.MainActivity;
import com.vsnetworks.vsnmedia.VSWebViewClient;

public class TestMimeTypes extends ActivityInstrumentationTestCase2<MainActivity> {

Activity activity;
Context context;

public TestMimeTypes() {
super(MainActivity.class);
}

public void setUp() throws Exception {
super.setUp();
activity = getActivity();
context = activity.getApplicationContext();
}

public void test() {
String external = context.getExternalFilesDir(null).toString();
}

这是我得到的错误:

 [exec] com.vsnetworks.vsnmedia.test.TestMimeTypes:INSTRUMENTATION_RESULT: shortMsg=java.lang.NullPointerException
[exec] INSTRUMENTATION_RESULT: longMsg=java.lang.NullPointerException: Unable to start activity ComponentInfo{com.vsnetworks.vsnmedia/com.vsnetworks.vsnmedia.MainActivity}: java.lang.NullPointerException
[exec] INSTRUMENTATION_CODE: 0

我认为它与上下文相关,因为如果我执行以下操作:

Context context = this.getInstrumentation().getTargetContext();

我得到(第37行是context.get外线)

 [exec] com.vsnetworks.vsnmedia.test.TestMimeTypes:
[exec] Error in test:
[exec] java.lang.NullPointerException
[exec] at com.vsnetworks.vsnmedia.test.TestMimeTypes.test(TestMimeTypes.java:37)
[exec] at java.lang.reflect.Method.invokeNative(Native Method)
[exec] at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
[exec] at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
[exec] at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
[exec]
[exec] Test results for InstrumentationTestRunner=..E
[exec] Time: 0.292
[exec]
[exec] FAILURES!!!
[exec] Tests run: 2, Failures: 0, Errors: 1

我也尝试了以下所有相同的错误,即使在几个地方也有 getInstrumentation.waitForIdleSync() (我在另一个线程中看到)。我试过创建新的 MainActivity() 对象并从那里获取上下文以及 getActivity(),同样的问题。

context = getInstrumentation().getContext();
context = getInstrumentation().getTargetContext();
context = activity.getApplicationContext();
context = activity.getBaseContext();

那么我究竟做错了什么?

编辑 1 - 看起来这个问题只发生在模拟器上。如果我使用真实设备运行测试,它们都会通过。

最佳答案

我想这就是您要找的:

public void testExternalFilesDir() {
Activity activity = getActivity();
assertNotNull(activity);
File file = activity.getExternalFilesDir(null);
assertNotNull("No external storage available", file);
}

关于关于获取上下文的 Android ActivityInstrumentationTestCase2 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987309/

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