안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요, 안드로이드 초보입니다~
간단한 지뢰 찾기 프로그램을 만들어보려고 하는데 문제가ㄷㄷㄷ
Button을 상속 받아서 bombButton을 만드는데, 메소드 오버라이딩 하지 않고 인스턴스 변수만 추가했습니다.
bombORnot 은 해당 셀이 폭탄인가 아닌가 나타내고, nearbyBombs는 주변에 폭탄이 몇 개 있나 저장합니다.
public class bombButton extends Button { public boolean bombORnot; public int nearbyBombs; public bombButton(Context context) { super(context); // TODO Auto-generated constructor stub bombORnot=false; nearbyBombs=0; } }
그리고 main.xml 에 <bombButton> 태크를 써서 버튼 9개를 레이아웃 안에 넣었습니다.
<bombButton android:text=" " android:id="@+id/Button01" android:layout_width="40px" android:layout_height="40px"></bombButton> <bombButton android:text=" " android:id="@+id/Button02" android:layout_width="40px" android:layout_height="40px"></bombButton> <bombButton android:text=" " android:id="@+id/Button03" android:layout_width="40px" android:layout_height="40px"></bombButton> ...
그리고 onCreat() 에서 리스너도 정해줬습니다.
.... btTiles[0] = (bombButton)findViewById(R.id.Button01); btTiles[1] = (bombButton)findViewById(R.id.Button02); btTiles[2] = (bombButton)findViewById(R.id.Button03); ... int i; for(i=0;i<9;i++) btTiles[i].setOnClickListener(on_Clicked); ...
해서 돌리면 런타임 에러가 납니다...
소스엔 문제가 없다는데 실행하면 시작하자마자 끗 ㄷㄷㄷㄷ
아직 이클립스 사용이 익숙하지 못한지라 디버그 모드로 돌려도 잘 모르겠네요--;;
하지만 리소스를 못찾겠다는 말이 반복적으로 나옵니다..
제가 뭔가 빠뜨리고 있나요?
2010.08.17 18:04:57
LogCat이 뭔가요, 라고 물어보면 혼날 것 같아서 알아서 찾아냈습니다
...만, 뭐가 뭔지 모르겠네요--; 일단 빨간 게 불길한 녀석들 같아서 오려 붙입니다.
Errors
08-17 08:58:50.449: ERROR/AndroidRuntime(221): Uncaught handler: thread main exiting due to uncaught exception 08-17 08:58:50.609: DEBUG/EAS SyncManager(198): !!! EAS SyncManager, onDestroy 08-17 08:58:50.659: ERROR/AndroidRuntime(221): java.lang.RuntimeException: Unable to start activity ComponentInfo{kim.example/kim.example.FindingBombActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class bombButton 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.os.Handler.dispatchMessage(Handler.java:99) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.os.Looper.loop(Looper.java:123) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread.main(ActivityThread.java:4363) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at java.lang.reflect.Method.invokeNative(Native Method) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at java.lang.reflect.Method.invoke(Method.java:521) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at dalvik.system.NativeStart.main(Native Method) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class bombButton 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.Activity.setContentView(Activity.java:1622) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at kim.example.FindingBombActivity.onCreate(FindingBombActivity.java:20) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): ... 11 more 08-17 08:58:50.659: ERROR/AndroidRuntime(221): Caused by: java.lang.ClassNotFoundException: android.view.bombButton in loader dalvik.system.PathClassLoader@43b7c758 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.createView(LayoutInflater.java:466) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 08-17 08:58:50.659: ERROR/AndroidRuntime(221): ... 21 more
귀찮지 않으시면 에러로그 보는 법도 좀 간략하게 설명해주셨으면 감사하겠습니다.
2010.08.17 19:39:14
아 일단 해결했습니다..
태그에 패키지 명을 붙이니 잘 돌아가네요.
하지만, 이렇게 일일히 패키지 명 붙이지 않고 하는 방법은 없나요?
태그에 패키지 명을 붙이니 잘 돌아가네요.
하지만, 이렇게 일일히 패키지 명 붙이지 않고 하는 방법은 없나요?
<kim.example.bombButton android:text="" android:id="@+id/Button01" android:layout_width="40px" android:layout_height="40px"/> <kim.example.bombButton android:text="" android:id="@+id/Button02 android:layout_width="40px" android:layout_height="40px"/> ...