天天看点

Android bug-记录-2014年12月19日10:42:58

//bug

[email protected] log]$ cat shop_android_txws1_天下无双_总店_2014-12-18_19-05-53.log 

TIME=1418354436000

FINGERPRINT=Xiaomi/mocha/mocha:4.4.4/KTU84P/4.12.12:user/release-keys

HARDWARE=mocha

UNKNOWN=unknown

RADIO=unknown

BOARD=unknown

versionCode=7

PRODUCT=mocha

versionName=2.1.6

DISPLAY=KTU84P

USER=builder

HOST=zc-miui-ota-bd32

DEVICE=mocha

TAGS=release-keys

MODEL=MI PAD

BOOTLOADER=unknown

CPU_ABI=armeabi-v7a

CPU_ABI2=armeabi

IS_DEBUGGABLE=true

ID=KTU84P

SERIAL=5EB1D83E

MANUFACTURER=Xiaomi

BRAND=Xiaomi

TYPE=user

android.view.WindowManager$BadTokenException: Unable to add window -- token android.[email protected] is not valid; is your activity running?

        at android.view.ViewRootImpl.setView(ViewRootImpl.java:587)

        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)

        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)

        at android.app.Dialog.show(Dialog.java:286)

        at com.sintn.hera.shop.activity.base.BaseActivity.showPromptDialog(BaseActivity.java:441)

        at com.sintn.hera.shop.activity.base.BaseActivity.onEventRunEnd(BaseActivity.java:685)

        at com.sintn.hera.shop.activity.member.SwipeActivity.onEventRunEnd(SwipeActivity.java:86)

        at com.sintn.hera.shop.AndroidEventManager.doNotify(AndroidEventManager.java:159)

        at com.sintn.hera.shop.AndroidEventManager.notifyEventRunEnd(AndroidEventManager.java:341)

        at com.sintn.hera.shop.AndroidEventManager.onEventRunEnd(AndroidEventManager.java:321)

        at com.sintn.hera.shop.AndroidEventManager$2$1.run(AndroidEventManager.java:262)

        at android.os.Handler.handleCallback(Handler.java:733)

        at android.os.Handler.dispatchMessage(Handler.java:95)

        at android.os.Looper.loop(Looper.java:136)

        at android.app.ActivityThread.main(ActivityThread.java:5026)

        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:802)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

        at dalvik.system.NativeStart.main(Native Method)

//原因:

错误原因是Dialog在show的时候必须要有一个activity作为窗口载体,上面的日志的意思是承载Dialog的activity已经被销毁了,不存在了

解决方法:

1.粗暴一点直接try catch

2.有好一点就是show之前判断activity是否被销毁了

if (!isFinishing()) showDialog();