NoSuchFieldError : 클래스 Lcom / disdemo / R $ id에 유형 I의 정적 필드 listView1이 없습니다. 또는 그 수퍼 클래스


89

listView1이있는 module1 (Android Studio)이 있습니다 activity_main.xml(module1의 res에 있음). 이 모듈의 MainActivity는 동일한 Android Studio 프로젝트의 다른 module2에서 시작됩니다.

module1을 삭제하고 동일한 res 및 java 파일로 다시 새로 만들려고 시도했습니다. 여전히 동일한 문제가 발생합니다.


settings.gradle 및 build.gradle에 모듈을 추가했습니다.
Komal Gupta

14
다른 모듈 중 하나에도 activity_main.xml 레이아웃이 있으므로이 NoSuchField 오류가 발생했습니다. 내 모듈 중 하나에서 레이아웃 이름을 바꾸고 작동했습니다.
Komal Gupta 2015

나는 48 시간 전에 당신의 의견을 읽고 싶습니다. 이틀 전부터이 문제로 고생했습니다 !!
Mani

2
한 모듈에서 다른 모듈로 문자열 리소스를 이동했기 때문에 제 경우는 약간 달랐습니다. 제 경우에는 문제를 해결하기 위해 Android Studio에서 Build> Clean을 클릭해야했습니다.
Tony Wickham

예, 중복 리소스 파일 문제가 아니 었으므로 정리-> 빌드가 작동했습니다.
Komal Gupta 2015

답변:


202

동일한 이름의 라이브러리와 모듈 모두에 레이아웃이 있거나 중복 리소스 ID로 여러 xml 레이아웃을 확장했다고 생각합니다.


4
네, 정확히 그랬습니다. 나는 곧 그것을 알아 냈지만 슬픈 것은 오류 메시지가 충분히 직관적이지 않았기 때문에 많은 시간을 낭비했다는 것입니다. Android Studio는보다 포괄적 인 오류 메시지 로깅을 시작해야합니다.
Komal Gupta 2015

6
좋아요! 이제 다른 사람이 이러한 유형의 문제를 해결하는 데 도움이되도록 승인 됨으로 표시해야합니다.
JosephM

1
AS의 refactor-rename을 사용하면 모든 항목의 이름이 변경됩니다 (예 : activity_main.xml수작업으로 수행하는 것이 좋습니다).
serv-inc

앱과 모듈에서 이름이 같은 두 개의 레이아웃으로 인해이 오류가 발생했습니다. 감사!
Sandeep Yohans 19

30

두 모듈 모두 activity_main.xml. 하나의 파일 이름을 변경하십시오.

업데이트 : @kundan kamal이 표현하고 싶은 것은 두 모듈에 비슷한 이름의 레이아웃 파일이 있다는 것입니다.


2
이 3 시간 :( 낭비 당신이 내 하루에 저장합니다.
KARTHIK kolanji

8

여러 모듈을 사용하고 모든 xml 레이아웃의 동일한 이름을 지정한 다음이 오류를 제공하므로 xml 레이아웃의 이름을 바꾸십시오.


감사. 도움이되었습니다
Vigneswaran A


0

이런 종류의 오류는 나에게 한 번 발생했지만 string리소스가 있습니다. 번역 파일에 문자열을 구성했지만 기본 문자열 리소스 파일에는 구성하지 않았기 때문에 충돌이 발생했습니다.


0

내가 틀리지 않았다면 ... 프로젝트에서 라이브러리와 모듈의 이름이 같은 것 같아서 그 중 하나의 이름을 바꿔야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.