ImageSelector
ImageSelector copied to clipboard
java.lang.NullPointerException android 4.1.1
在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 能贴出完整的 Log么? 有可能是 setPopupWindowTouchModal 这个方法引起的。
这个方法是通过反射调用的,目的是为了点击PopupWindow外部 窗体不消失,Touch事件继续向下传递。
完整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 你可以在FolderWindow 41行代码处,把setPopupWindowTouchModal(this, false);给注释掉。 注释掉后,当window打开后,点击预览不会跳转界面,而是使window消失。对功能没什么影响。
你是怎么让window消失的,点击所有图片?按返回键?点击预览?点击window上面 ToolBar下面的灰色透明区域?
@HiPipilu 或者你把 setPopupWindowTouchModal(this, false);这行代码 移动到 registerListener()后面。 试试会不会报错。
@ioneday http://blog.csdn.net/zhuhai__yizhi/article/details/46850355
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;
}
});**
}
...
}
...
}
我也遇到了,楼上的方法可行