ImageSelector icon indicating copy to clipboard operation
ImageSelector copied to clipboard

java.lang.NullPointerException android 4.1.1

Open HiPipilu opened this issue 8 years ago • 7 comments

在ImageSelectorActivity里,FolderWindow消失的时候,会引起这个问题 java.lang.NullPointerException at android.view.ViewRootImpl.drawAccessibilityFocusedDrawableIfNeeded(ViewRootImpl.java:2301) 不知道为什么会引起,stackoverflow上给了一个解决方案http://stackoverflow.com/questions/16221175/aos-4-x-crash-issue-with-animation。 能分析下是怎么引起的吗?

HiPipilu avatar May 30 '16 07:05 HiPipilu

@HiPipilu 能贴出完整的 Log么? 有可能是 setPopupWindowTouchModal 这个方法引起的。

这个方法是通过反射调用的,目的是为了点击PopupWindow外部 窗体不消失,Touch事件继续向下传递。

ioneday avatar May 31 '16 09:05 ioneday

完整log如下: 06-01 14:26:47.904 21416-21416/com.yongchun.multiimageselector E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at android.view.ViewRootImpl.drawAccessibilityFocusedDrawableIfNeeded(ViewRootImpl.java:2301) at android.view.ViewRootImpl.onHardwarePostDraw(ViewRootImpl.java:1931) at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1182) at android.view.ViewRootImpl.draw(ViewRootImpl.java:2147) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2019) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1830) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method)

操作是点击“所有照片”后,PopupWindow消失的时候,引起的这个异常。引起异常的手机系统是4.1.1。 我另一个手机5.0的系统,不会产生这个异常

HiPipilu avatar Jun 01 '16 06:06 HiPipilu

@HiPipilu 你可以在FolderWindow 41行代码处,把setPopupWindowTouchModal(this, false);给注释掉。 注释掉后,当window打开后,点击预览不会跳转界面,而是使window消失。对功能没什么影响。

你是怎么让window消失的,点击所有图片?按返回键?点击预览?点击window上面 ToolBar下面的灰色透明区域?

ioneday avatar Jun 02 '16 07:06 ioneday

@HiPipilu 或者你把 setPopupWindowTouchModal(this, false);这行代码 移动到 registerListener()后面。 试试会不会报错。

ioneday avatar Jun 02 '16 07:06 ioneday

@ioneday http://blog.csdn.net/zhuhai__yizhi/article/details/46850355

lambor avatar Jul 23 '16 07:07 lambor

FolderWindow.java 中

@Override
    public void dismiss() {
        ...
        animation.setAnimationListener(new Animation.AnimationListener() {
            ...
            @Override
            public void onAnimationEnd(Animation animation) {
                **new Handler().post(new Runnable() {
                    @Override
                    public void run() {
                        FolderWindow.super.dismiss();
                        isDismiss = false;
                    }
                });**
            }
            ...
        }
        ...
    }

lambor avatar Jul 23 '16 07:07 lambor

我也遇到了,楼上的方法可行

okadaNana avatar Oct 20 '16 09:10 okadaNana