Android 활동에서 대화 상자를 여는 중이 오류가 발생했습니다. Google 검색은 도움이되는 해석을 제공하지 않았습니다. 누군가에게이 예외가 무엇을 의미하는지 알기를 원합니까?
08-21 00:42:48.515: ERROR/AndroidRuntime(880): Uncaught handler: thread main exiting due to uncaught exception
08-21 00:42:48.595: ERROR/AndroidRuntime(880): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.ViewRoot.setView(ViewRoot.java:429)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:178)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.app.Dialog.show(Dialog.java:231)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.app.Activity.showDialog(Activity.java:2407)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at net.sosiouxme.WhenDidI.custom.AlarmEditActivity.openNewAlarmDialog(AlarmEditActivity.java:179)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at net.sosiouxme.WhenDidI.custom.AlarmEditActivity.onOptionsItemSelected(AlarmEditActivity.java:188)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at net.sosiouxme.WhenDidI.activity.TrackerEdit.onOptionsItemSelected(TrackerEdit.java:146)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.app.Activity.onMenuItemSelected(Activity.java:2085)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:820)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:139)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:813)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:519)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.View.onTouchEvent(View.java:3828)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.widget.TextView.onTouchEvent(TextView.java:6291)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.View.dispatchTouchEvent(View.java:3368)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
08-21 00:42:48.595: ERROR/AndroidRuntime(880): at android.os.Handler.dispatchMessage(Handler.java:99)`
TrackerEdit가 AlarmEditActivity를 상속 받았다는 것을 아는 것이 도움이 될 수 있습니다. TrackerEdit에는 OptionsMenu가 있으며이 메뉴에서 옵션을 선택하면 openDialog를 통해 대화 상자가 표시됩니다. 스택 트레이스는 대화 상자를 생성 할 기회가 생기기 전에 충돌이 발생했음을 나타냅니다. 어떤 도움을 주시면 감사하겠습니다.
편집 - 나는 내 클래스() net.sosiouxme 시작하고 onOptionsItemSelected를 받고 Activity.showDialog라는 부분이었다 꽤 명확 거라고 생각하지만 그래, 괜찮아, 일부 코드가 꽤 도움이 될 수 있습니다. 하지만 여기 AlarmEditActivity의 비트가 있습니다 :
/* ***************************** event handling *************************** */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_alarm:
openNewAlarmDialog();
break;
}
return super.onOptionsItemSelected(item);
}
/*
* Open dialog for user to create a new alarm
*/
public void openNewAlarmDialog() {
Alarm alarm = new Alarm(mTracker.getId());
alarm.setIvalWeeks(1);
mAlarmToEdit = alarm;
mViewOfAlarmToEdit = null;
showDialog(ALARM_DIALOG); // which is 0
}
코드는 아무 것도 재미 있지 않습니다. 메뉴 항목을 선택하면 대화 상자가 표시됩니다. 이 코드는 대화가 만들어 질 지점에 도달하지 못했고, 그래서 그것을 망칠 기회조차 없었습니다. 활동에 대해 원격으로 흥미로운 점은 실제 활동이 AlarmEditActivity를 확장하는 TrackerEdit이므로 실행중인 코드가 활동의 상위에 있다는 것입니다.
가 도움이 무엇을 할 수 :-) 차이는 코드 – Falmarri
를 게시 할 경우 다음의 모든 클래스를 했습니까 거기있어? 도메인과 관련된 문제 인 것 같습니다. Stackoverflow는 일반적인 질문 및 작은 특정 질문에는 적합하지만 시스템에 크게 영향을 미치는 복잡한 복잡한 문제에 대해서는 적합하지 않습니다. 좀 더 구체적으로 질문을 좁히려면 커뮤니티에서 더 좋은 반응을 얻으십시오. – mtmurdock
대부분은 활동에 내장 된 안드로이드입니다. – Falmarri