2010-05-26 6 views
12

Netbeans에서 Android hello world 애플리케이션을 구축 중입니다. 그것은 제대로 구축 중이며 에뮬레이터에서도 실행할 수 있습니다.Netbeans에서 JUnit 테스트를 실행하는 동안 java.lang.NoClassDefFoundError

그러나 Junit 테스트를 만들고 실행할 때 나는 java.lang.NoClassDefFoundError이됩니다.

이 문제를 어떻게 해결할 수 있습니까?

+9

전체 오류 메시지와 스택 추적을 포함하도록 질문을 편집하십시오. – BalusC

답변

0

전체 오류 메시지에 클래스 경로에있는 을 찾을 수없는 클래스 이름이 포함되어 있습니다. 테스트 실행에 사용되는 클래스 경로에 필요한 모든 클래스와 라이브러리 (클래스 파일, junit.jar, android specific libaries)가 포함되어 있는지 다시 확인하십시오.

0

재 구축에서는 대개 클래스를 찾습니다 (클래스 경로 문제이므로). Netbeans은 기존 테스트를 적극적으로 컴파일하는 것처럼 보이지만, 적어도 메이븐 (maven) 설정의 주요 소스 코드는 항상 사용할 수있는 것은 아닙니다.

전체 빌드를 실행하여이 문제를 해결하기 시작했습니다. 이 문제를 해결하는 플러그인이 있을지 모르지만 아직 찾지 못했습니다.

편집 : This 도움이 될 수 있습니다.

+0

나는 그가 android-netbeans 통합 문제가 더 있다고 생각한다. 당신은 저장시 컴파일이 프로젝트 소스에 대해서도 가능하다면 발생하는 문제에 대해서 언급했다. – Karussell

16

테스트 프로젝트의 매니페스트를 확인하십시오 (예 : HelloWorldTest/AndroidManifest.xml). instrumentation 마크 업의 android:targetPackage 속성은 응용 프로그램의 패키지를 대상으로 지정해야합니다 (예 : com.example.helloworld). 아니요 테스트 프로젝트의 테스트 패키지 (예 : com.example.helloworld.test).

+0

* facepalm * 방금 검색 한 시간 1 시간을 절약했습니다. 일반적인 실수이지만 가끔씩 간과하는 경향이 있습니다. – marsbear

+3

어, 그 실수로 한 시간 잃어 버렸습니다. :) –

3

기본 응용 프로그램의 AndroidManifest.xml -> manifest -> package은 테스트 응용 프로그램의 AndroidManifest.xml -> manifest -> instrumentation -> android:targetPackage과 일치해야합니다.

+1

하지만 그는 단순히 계측 테스트를 실행하지만 단순한 오래된 jUnit을 실행한다면? – JacksOnF1re

관련 문제