Blankj / AndroidUtilCode

:fire: Android developers should collect the following utils(updating).
https://blankj.com/2016/07/31/android-utils-code/
Apache License 2.0
33.24k stars 10.67k forks source link

ToastUtils 不显示吐司 #583

Closed zenchen3331 closed 6 years ago

zenchen3331 commented 6 years ago

柯基大佬,好!

吐司相关

在一些机型上报错,无法正常吐司。

ToastUtils

     /**
     * Show the sToast for a long period of time.
     *
     * @param text The text.
     */
    public static void showLong(@NonNull final CharSequence text) {
        show(text, Toast.LENGTH_LONG);
    }

AndroidUtilsCode 1.18.5

设备信息

厂商:Nubia 型号:NX589J Android版本:7.1.1 nubia UI:v5.0 版本号:NX589J_CNCommon_V304

日志

我调试了一下,发现了以下报错信息

08-09 11:38:48.838 2952-4609/? I/NotificationService: cancelToast pkg=com.blankj.androidutilcode callback=android.app.ITransientNotification$Stub$Proxy@8b01454
08-09 11:38:48.839 2952-4609/? W/NotificationService: Toast already cancelled. pkg=com.blankj.androidutilcode callback=android.app.ITransientNotification$Stub$Proxy@8b01454
08-09 11:38:48.847 540-1018/? D/msm8916_platform: platform_set_channel_map mixer_ctl_name:Playback Channel Map12
    platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2
08-09 11:38:48.866 2952-4228/? W/AppOps: Finishing op nesting under-run: uid 10270 pkg com.blankj.androidutilcode code 24 time=0 duration=0 nesting=0
08-09 11:38:48.884 492-563/? I/SurfaceFlinger: SurfaceFlinger::LucidMessage
08-09 11:38:48.901 2952-27947/? W/WindowManager: Failed looking up window
    java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@6226ffd does not exist
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:10107)
        at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:10098)
        at com.android.server.wm.WindowManagerService.finishDrawingWindow(WindowManagerService.java:3477)
        at com.android.server.wm.Session.finishDrawing(Session.java:249)
        at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:483)
        at com.android.server.wm.Session.onTransact(Session.java:136)
        at android.os.Binder.execTransact(Binder.java:582)
Blankj commented 6 years ago

某些手机吐司需要悬浮窗口权限的,你打开下就有了。 如果我这不能显示,那说明你调用系统的也不行

zenchen3331 commented 6 years ago

我用

    public void useToastUtils(View view){
        ToastUtils.showLong("我是工具吐司");
    }

    public void useSystemToast(View view){
        Toast.makeText(this,"我是系统吐司",Toast.LENGTH_LONG).show();
    }

做了对比, 系统的可以显示。

zenchen3331 commented 6 years ago

我开启了「悬浮窗」权限,就没问题了。 另外试了两款机型,Mi Note3(7.1.1) 和 OPPO RP (7.1.1) 在没有允许「悬浮窗」权限的情况下没问题, Nubia 手机要单独适配了, 加个悬浮窗权限的请求。