No static field xxx of type I in class Lcom/xxx/xxx/xxx/R$id



기존에 작업하던 xml 파일을 다른 모듈에 붙여 넣은 후 그 화면으로 진입하니 Runtime 중에 다음과 같은 에러가 나왔습니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/xxx/xxx/xxx/R$id; 
or its superclasses (declaration of 'xxx.xxx.xxx.xxx.R$id' appears in /data/app/xxx/xxx.apk)
        at xxx.xxx.xxx.xxx.activity.OcrActivity.setPreviewLayout(OcrActivity.java:177)
        at xxx.xxx.xxx.xxx.activity.OcrActivity.startOcr(OcrActivity.java:156)
        at xxx.xxx.xxx.xxx.activity.OcrActivity.onCreate(OcrActivity.java:70)
        at android.app.Activity.performCreate(Activity.java:6904)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
        at android.app.ActivityThread.access$1100(ActivityThread.java:229)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:7325)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
cs

 

원인

다른 모듈에서 제가 사용하는 layout 파일과 동일한 이름의 파일이 있었기 때문입니다

제가 setContentView() 에서 사용하는 layout 파일은 다른 파일이었고 그 파일에는 제가 사용하고자 하는 id가 없었습니다

R.java 파일에 제가 사용하고자 하는 id가 없다는 에러메시지 입니다

 

해결

동일한 layout 파일을 삭제하거나 이름을 변경합니다

R.java 파일의 경로가 작업하는 모듈의 경로와 같은지 확인합니다

+ Recent posts