마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

jar file 안에 있는 activity를 호출할 때 오류가 뜨면서 죽습니다

0 추천

로그 내용은 다음과 같습니다.

05-12 22:36:44.575  27621-27621/graduate.myzxing E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: graduate.myzxing, PID: 27621
    java.lang.RuntimeException: Unable to start activity ComponentInfo{graduate.myzxing/com.google.zxing.client.android.CaptureActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030002
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2436)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
            at android.app.ActivityThread.access$900(ActivityThread.java:170)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5635)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030002
            at android.content.res.Resources.getValue(Resources.java:2326)
            at android.content.res.Resources.loadXmlResourceParser(Resources.java:3680)
            at android.content.res.Resources.getLayout(Resources.java:2142)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:352)
            at android.app.Activity.setContentView(Activity.java:2057)
            at com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:136)
            at android.app.Activity.performCreate(Activity.java:5580)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
            at android.app.ActivityThread.access$900(ActivityThread.java:170)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5635)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
 
at com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:136)
CaptureActivity.java 파일에 가서 136줄 보면 setContentView(R.layout.capture); 여기서 오류가 난 것을 알 수 있습니다.
 
NotFoundException: Resource ID #0x7f030002를 발생시킨 Resource ID를 R파일에서 확인하면 int layout capture 0x7f030002 이 부분입니다.
 
위에 두 개를 종합하면 capture.xml 이 파일을 찾지 못해서 난 오류라고 생각됩니다. 그래서 xml 파일을 jar 파일에도 포함시켜보기도 하고 기존 프로젝트에 res폴더로 해서 추가시켜봐도 계속 오류가 뜨네요 어떻게 해결할 수 있을까요? ㅠㅠ
HiAndroid (140 포인트) 님이 2015년 5월 12일 질문

1개의 답변

+1 추천
안드로이드 프로젝트를 jar로 묶을 때, resource 는 포함되지 않는 것으로 알고 있습니다.

라이브러리 프로젝트를 참조하는 것이 아니라, jar 파일을 복사하여 사용하는 것이라면

jar 안에서 사용하는 resource를 작업중인 프로젝트의 res 폴더로 복사하여 사용하셔야 할 겁니다.
가랑비 (10,530 포인트) 님이 2015년 5월 13일 답변
...