일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 구글
- javascript
- techEmpower
- php
- kakao
- unity
- mariadb
- C lanuage
- ubuntu
- C
- android
- 번역
- centOS7
- 해석
- caddy
- 컴퓨터과학총론
- 자바
- error
- 프래그먼트
- server
- 개발
- it
- 안드로이드
- NGINX
- MySQL
- Portfolio
- H2O
- 개발자
- java
- 한글
- Today
- Total
개발모음집
Unable to add window -- token null is not for an application 에러 본문
// 사진
AlertDialog.Builder ab = new AlertDialog.Builder(getActivity());
ab.setMessage(R.string.register_content_dialog_text);
ab.setNeutralButton("취소", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
// 다이얼로그를 취소한다
dialog.cancel();
}
}).setNegativeButton("앨범선택", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
doTakeAlbumAction();
}
}).setPositiveButton("사진촬영", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
doTakePhotoAction();
}
});
ab.show();
프래그먼트에서 띄우던 다이얼로그를 그대로 액티비티에서 사용하려했다.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.blank.android.crafter, PID: 15491
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.view.ViewRootImpl.setView(ViewRootImpl.java:853)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:350)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1113)
at com.blank.android.crafter.SettingsActivity.onClick(SettingsActivity.java:156)
at android.view.View.performClick(View.java:5697)
at android.view.View$PerformClick.run(View.java:22526)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
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)
이러한 에러가 났고, 구글링 결과 다이얼로그 생성할 때
getActivity메소드가 아닌 액티비티명을 적어줘야한다는 것을 보고
고치니 에러해결
// 사진
AlertDialog.Builder ab = new AlertDialog.Builder(액티비티명.this);
ab.setMessage(R.string.register_content_dialog_text);
ab.setNeutralButton("취소", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
// 다이얼로그를 취소한다
dialog.cancel();
}
}).setNegativeButton("앨범선택", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
doTakeAlbumAction();
}
}).setPositiveButton("사진촬영", new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
doTakePhotoAction();
}
});
ab.show();
'Android' 카테고리의 다른 글
Google Places API Web Service API 키발급 (0) | 2017.07.21 |
---|---|
fcm 삽질 (0) | 2017.07.14 |
구글 검색 api 에러 (0) | 2017.06.30 |
구글지도 위도, 경도값 받아오지못하는 에러 (2) | 2017.06.30 |
구글 Key Exists 에러 (0) | 2017.06.30 |