단위 테스트에서 라이브러리 모듈의 메소드를 호출하려는 코드 행에서 Android Studio의 내 Activity/instrumentation 테스트를 실행할 때 NoSuchMethodError
이 표시됩니다. 거래는 여기에 무엇Android Instrumentation 테스트에서 라이브러리 프로젝트의 클래스를 찾지 못했습니다.
public class MainActivityTest extends ActivityInstrumentationTestCase2 {
public void testMainActivity() {
final MainActivity target = (MainActivity) getActivity();
MyLibarary.someStaticMethod(); // yields java.lang.NoSuchMethodError
}
:
그래서이 내 시험입니까? 내 라이브러리를 build.gradle의 "compile"의존성으로 정의 했으니 괜찮습니다. 라이브러리는 문제없이 메인 앱 클래스에서도 호출됩니다. 실패한 테스트에서 호출 할 때만입니다. 내 응용 프로그램과 내 테스트는 동일한 모듈에 있습니다.
정리 작업, assembleDebug 및 assembleDebugTest 작업을 수동으로 실행 해 보았습니다. 아무 소용이 없습니다.
프로젝트 구조 :
Root
|---MyApp
| |---src/main/...
| |---src/androidTest/...
|----MyLibrary
안드로이드 스튜디오 V1.0.2 Gradle을이 AS 기본값의 실행/디버그 구성에서 모듈에 "안드로이드 테스트" "MyApp를"로 실행 도구 v1.0.0 개발자 를 구축 실행 계측 테스트 주자.
Eclipse에서 >> 프로젝트 속성 >> Android >> 테스트중인 프로젝트가 라이브러리에서 참조되는지 확인하십시오. '라이브러리입니다'는 체크하지 않은 상태로 유지 될 수 있습니다 –
정말 그 중 하나의 이름이 아닙니다 - 나는 코드를 익명으로 처리했습니다. 하지만 그건 문제가 아닙니다. 구문 오류가 있으면 코드가 컴파일되지 않습니다. 그것은 컴파일하지만 런타임에 실패 – Nilzor
죄송합니다. 응답하는 동안 내 의견을 편집했습니다. 주제에 대한 대부분의 게시물에 따르면 컴파일 중 한 번은 런타임 중에 라이브러리의 두 버전을 찾고 있습니다. –