Robolectric : Null 포인터 예외로 인해 빌드 실패

N 샤르마

저는 최근에 제 안드로이드 앱을위한 Robolectric 단위 테스트 프레임 워크 작업을 시작했습니다. 이 모든 것을 위해 Android Studio IDE를 사용하고 있습니다.

버튼 R.id.clickButton이있는 MainActivity.java를 만들었습니다. 내 전화 / 에뮬레이터에서 해당 앱을 실행할 수 있고 잘 작동합니다.

내가 보려고하는 MainActivityTest.java를 아래처럼 null이 아닌 버튼으로 만들었습니다.

private MainActivity activity;

@Before
public void setup() {
    activity = Robolectric.buildActivity(MainActivity.class).get();
}

@Test
public void shouldFail() {
    assertTrue(true);
}

@Test
public void shouldNotBeNull() {
    assertThat(activity).isNotNull();

    Button button = (Button) activity.findViewById(R.id.clickButton);
    assertThat(button).isNotNull();

}

명령 줄을 사용하여 테스트를 실행하면 Button button = (Button) activity.findViewById (R.id.clickButton); 오류 추적으로. 왜 그런지 알 수 없었습니다. 사람들은 이것을보고 당신이 곧 대답하기를 바랍니다.

StackTrace

java.lang.NullPointerException
    at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:132)
    at android.view.ViewGroup.initViewGroup(ViewGroup.java:447)
    at android.view.ViewGroup.__constructor__(ViewGroup.java:417)
    at android.view.ViewGroup.<init>(ViewGroup.java:416)
    at android.widget.FrameLayout.<init>(FrameLayout.java:93)
    at org.robolectric.tester.android.view.RoboWindow$2.<init>(RoboWindow.java:231)
    at org.robolectric.tester.android.view.RoboWindow.createDecorView(RoboWindow.java:231)
    at org.robolectric.tester.android.view.RoboWindow.access$000(RoboWindow.java:30)
    at org.robolectric.tester.android.view.RoboWindow$1.run(RoboWindow.java:222)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:256)
    at org.robolectric.tester.android.view.RoboWindow.getDecorView(RoboWindow.java:220)
    at org.robolectric.tester.android.view.RoboWindow.findViewById(RoboWindow.java:292)
    at org.robolectric.shadows.ShadowActivity.findViewById(ShadowActivity.java:312)
    at android.app.Activity.findViewById(Activity.java)
    at com.example.robolectrichelloworld.MainActivityTest.shouldNotBeNull(MainActivityTest.java:41)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:241)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86)
    at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49)
    at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:50)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
    at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:103)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355)
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
N 샤르마

간단히 클래스를 확장하여 문제를 해결했습니다 Activity. 내 활동이 확장 ActionBarActivity되어 문제가 발생했습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

예외로 인해 빌드 실패

분류에서Dev

예외로 인해 Grails 빌드 실패

분류에서Dev

실패 : 예외로 인해 빌드 실패 (Flutter)

분류에서Dev

Kotlin에서 예외 오류로 인해 빌드 실패

분류에서Dev

예외로 인해 Cordova 빌드가 실패했습니다.

분류에서Dev

Lint-FAILURE : 예외로 인해 빌드 실패

분류에서Dev

실패 : 예외로 인해 빌드가 실패했습니다. 이온으로

분류에서Dev

FML Gradle-실패 : 예외로 인해 빌드에 실패했습니다

분류에서Dev

실패 : 예외로 인해 빌드에 실패했습니다. (FLUTTER)

분류에서Dev

실패 : 예외로 인해 빌드가 실패했습니다. 이온

분류에서Dev

실패 코드 바 예외로 인해 빌드가 실패했습니다. 빌드 명령 실행시

분류에서Dev

예기치 않은 예외로 인한 Bamboo 빌드 실패

분류에서Dev

FLUTTER 프로젝트 오류 : FAILURE : 예외로 인해 빌드 실패

분류에서Dev

예외로 인해 Flutter firebase_ml_vision 빌드가 실패했습니다.

분류에서Dev

TFS 2015-테스트 어셈블리의 예외로 인해 빌드 실패

분류에서Dev

app : transformClassesWithJarMergingForDebug로 인해 빌드 실패

분류에서Dev

증분으로 인해 빌드 실패

분류에서Dev

onRestoreInstanceState ()에서 활동이 실패 함-Null 포인터 예외

분류에서Dev

실패 : 예외로 인해 빌드 실패 (공유 환경 설정 및 gradle 래퍼 속성)

분류에서Dev

예외로 인해 빌드에 실패했습니다. 플러터 관련 Gradle 문제

분류에서Dev

예외로 인해 빌드에 실패 했습니까? 기계적 인조 인간

분류에서Dev

Override Validate () 메서드에 대한 null ponter 예외로 인해 Jmockit 테스트가 실패합니다.

분류에서Dev

XML을 Hive로로드 할 때 Null 포인터 예외

분류에서Dev

Build.gradle 파일 변경 후 예외로 인한 빌드 실패 오류

분류에서Dev

"예외로 인해 빌드에 실패했습니다." sqflite 또는 path_provider를 사용하는 동안 flutter

분류에서Dev

APK를 빌드하려고하면 디버그 콘솔에 다음이 표시됩니다. 빌드 : 예외로 인해 빌드 실패

분류에서Dev

Docker 빌드의 TypeScript 오류로 인해 npm 실행 빌드 실패

분류에서Dev

JUNIT Null 포인터 예외

분류에서Dev

ImageButton Null 포인터 예외

Related 관련 기사

  1. 1

    예외로 인해 빌드 실패

  2. 2

    예외로 인해 Grails 빌드 실패

  3. 3

    실패 : 예외로 인해 빌드 실패 (Flutter)

  4. 4

    Kotlin에서 예외 오류로 인해 빌드 실패

  5. 5

    예외로 인해 Cordova 빌드가 실패했습니다.

  6. 6

    Lint-FAILURE : 예외로 인해 빌드 실패

  7. 7

    실패 : 예외로 인해 빌드가 실패했습니다. 이온으로

  8. 8

    FML Gradle-실패 : 예외로 인해 빌드에 실패했습니다

  9. 9

    실패 : 예외로 인해 빌드에 실패했습니다. (FLUTTER)

  10. 10

    실패 : 예외로 인해 빌드가 실패했습니다. 이온

  11. 11

    실패 코드 바 예외로 인해 빌드가 실패했습니다. 빌드 명령 실행시

  12. 12

    예기치 않은 예외로 인한 Bamboo 빌드 실패

  13. 13

    FLUTTER 프로젝트 오류 : FAILURE : 예외로 인해 빌드 실패

  14. 14

    예외로 인해 Flutter firebase_ml_vision 빌드가 실패했습니다.

  15. 15

    TFS 2015-테스트 어셈블리의 예외로 인해 빌드 실패

  16. 16

    app : transformClassesWithJarMergingForDebug로 인해 빌드 실패

  17. 17

    증분으로 인해 빌드 실패

  18. 18

    onRestoreInstanceState ()에서 활동이 실패 함-Null 포인터 예외

  19. 19

    실패 : 예외로 인해 빌드 실패 (공유 환경 설정 및 gradle 래퍼 속성)

  20. 20

    예외로 인해 빌드에 실패했습니다. 플러터 관련 Gradle 문제

  21. 21

    예외로 인해 빌드에 실패 했습니까? 기계적 인조 인간

  22. 22

    Override Validate () 메서드에 대한 null ponter 예외로 인해 Jmockit 테스트가 실패합니다.

  23. 23

    XML을 Hive로로드 할 때 Null 포인터 예외

  24. 24

    Build.gradle 파일 변경 후 예외로 인한 빌드 실패 오류

  25. 25

    "예외로 인해 빌드에 실패했습니다." sqflite 또는 path_provider를 사용하는 동안 flutter

  26. 26

    APK를 빌드하려고하면 디버그 콘솔에 다음이 표시됩니다. 빌드 : 예외로 인해 빌드 실패

  27. 27

    Docker 빌드의 TypeScript 오류로 인해 npm 실행 빌드 실패

  28. 28

    JUNIT Null 포인터 예외

  29. 29

    ImageButton Null 포인터 예외

뜨겁다태그

보관