일단 관련된 부분만 올립니다.
public class AndroidViewerActivity extends Activity
{
....
MenuItem mi_fullscreen;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mi_fullscreen = (MenuItem) findViewById(R.id.menuFullscreen);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menuConnect:
mi_Capture.setEnabled(true);
start();
break;
}
....
}
}
그리고 로그캣입니다.
01-19 16:32:51.522: E/AndroidRuntime(3627): FATAL EXCEPTION: main
01-19 16:32:51.522: E/AndroidRuntime(3627): java.lang.NullPointerException
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.viewer.AndroidViewerActivity.onOptionsItemSelected(AndroidViewerActivity.java:213)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.app.Activity.onMenuItemSelected(Activity.java:2250)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:765)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:160)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:885)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:545)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.view.View$PerformClick.run(View.java:9277)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.os.Handler.handleCallback(Handler.java:587)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.os.Handler.dispatchMessage(Handler.java:92)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.os.Looper.loop(Looper.java:143)
01-19 16:32:51.522: E/AndroidRuntime(3627): at android.app.ActivityThread.main(ActivityThread.java:4196)
01-19 16:32:51.522: E/AndroidRuntime(3627): at java.lang.reflect.Method.invokeNative(Native Method)
01-19 16:32:51.522: E/AndroidRuntime(3627): at java.lang.reflect.Method.invoke(Method.java:507)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-19 16:32:51.522: E/AndroidRuntime(3627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-19 16:32:51.522: E/AndroidRuntime(3627): at dalvik.system.NativeStart.main(Native Method)
android.viewer.AndroidViewerActivity.onOptionsItemSelected(AndroidViewerActivity.java:213)
요 부분이
mi_Capture.setEnabled(true);
요 부분입니다.
저도 도대체 이해가 안되네요 ㅠㅠ
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menuConnect:
mi_FullScreen.setEnabled(true);
start();
break;
}
....
}
}
같은 오류 발생합니다안드로이드 프로젝트의 xml 내용은 모두 R 클래스의 객채화 되어 연결고리가 생깁니다.
mi_fullscreen = (MenuItem) findViewById(R.id.menuFullscreen); 와같이 class type만 맞으면 컴파일 할 때는 에러가 안생기죠.
런타임 때 레이아웃 R.layout.main 이 올라가고 레이아웃의 자식들도 올라갑니다.
클릭을 하는 순간 mi_fullscreen = (MenuItem) findViewById(R.id.menuFullscreen); 애는 main 레이아웃의 객채가 아니여서
인플레이트 될 수가 없는 상황이 발생하죠..
박스 뜯고 왔더니 정신이 없네 -_-;; 힘드네요 박스 뜯기. 암튼 윗처럼 컴파일은 되었으나, 해당 레이아웃의 객체가 아니여서 런타임에 null point가 발생할 수 있습니다.
mi_fullscreen = (MenuItem) findViewById(R.id.menuFullscreen);
mi_fullscreen.setEnabled(true); << 여기 부분에서 에러가 발생하는거 잖아요?
main.xml 에
<packageName.MenuItem
android:id="@+id/manuFullscreen"
이런 노드가 있는지 확인 해보세요.
없어서 추가를 해줘 봤는데
01-19 17:55:28.714: E/AndroidRuntime(7201): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.viewer/android.viewer.AndroidViewerActivity}: android.view.InflateException: Binary XML file line #59: Error inflating class packageName.MenuItem
어떤건지 몰라서 뭐라 말을 못하겠네 -_-;;
.. 댓글 다시 다신걸 보니까. 그게 아닌거 같은데요. 만약 저게 맞다면 width, height를 넣어 주셔야 대고요.
근데 View에 MenuItem 인터페이스가 있네요. import 하실때 주의 하시고요.
mi_fullscreen = (MenuItem) findViewById(R.id.menuFullscreen); << 애를 생성 하셨는데, 애가 어떤 일을 하는
애인지 설명을 좀 해주시면 원인 찾기가 쉬울거같습니다.
걔를 이용해서
서버 접속중인 상태가 아니면 메뉴의 FullScreen 버튼이 비활성화가 되게 만들고
서버에 접속중이면 메뉴의 FullScreen 버튼이 활성화가 되게 하고 싶습니다.




로그를 봐야알겠지만
널포인터익셉션중 하나는 이클립스 자체에서 잘못참조하는 경우도 있습니다.
이런 오류는
xml 아이디랑 java코드 잘 확인해보시고 정말 다 맞다 싶으시면
clean한번 해주셔서 R.java를 다시 만드시면 없어집니다^^
근데 이경우가 맞나 모르겠네요..ㅎㅎ
로그캣 정보를 올려주시면 더 도움이 되드릴수있는데..