2015-06-14 6 views
8

का कारण बनता है मैंने एक ऐप लिखा है जो वेबव्यू में एचटीएमएल पेज प्रदर्शित करता है, जो व्यूपेजर में प्रबंधित होते हैं। सभी ठीक काम कर रहे हैं, लेकिन एक पृष्ठ से दूसरे पृष्ठ पर स्वाइप करते समय मेरे पास कुछ एएनआर हैं। एएनआर डेटा डंप से पता चलता है कि मुख्य धागे ने ThreadedRenderer.nSyncAndDrawFrame() को कॉल किया है जो मूल विधि कहता है, जो स्पष्ट रूप से रेंडरर थ्रेड के साथ संचार करता है, और दृश्य को चित्रित करने के लिए उस थ्रेड के लिए प्रतीक्षा करता है। चूंकि इनमें से दोनों मूल कोड निष्पादित कर रहे हैं, यह पता लगाना मुश्किल है कि क्या हो रहा है लेकिन ऐसा लगता है कि रेंडरर थ्रेड ने मुख्य थ्रेड को फिर से शुरू करने के लिए कभी संकेत नहीं दिया है, इसलिए एएनआर का कारण बनता है। एएनआर रिपोर्ट से पहले लॉगकैट में कुछ भी नहीं है जो किसी भी समस्या का सुझाव देता है।वेबव्यू एएनआर

क्या किसी के पास इस समस्या का निवारण करने के लिए सुझाव हैं? मुझे लगता है कि ThreadedRenderer.nSyncAndDrawFrame() पर कॉल वेबव्यू से जुड़ा हुआ है, लेकिन मेरे पास वास्तव में इसकी पुष्टि करने के लिए कुछ भी नहीं है।

समस्या दोहराने योग्य नहीं है, इस अर्थ में कि यदि मैं ऐप को पुनरारंभ करता हूं और उसी पृष्ठ पर नेविगेट करता हूं जो एएनआर हुआ था, तो यह फिर से नहीं होता है। डिवाइस एक नेक्सस 7 एंड्रॉइड 5.1 चल रहा है।

मुख्य और रेंडरर धागे के लिए

ANR स्टैकट्रेस: ​​

"main" prio=5 tid=1 Native 
| group="main" sCount=1 dsCount=0 obj=0x73547000 self=0xb4827800 
| sysTid=1248 nice=-6 cgrp=default sched=0/0 handle=0xb6fd6bec 
| state=S schedstat=(0 0 0) utm=6035 stm=1406 core=0 HZ=100 
| stack=0xbe5a6000-0xbe5a8000 stackSize=8MB 
| held mutexes= 
kernel: (couldn't read /proc/self/task/1248/stack) 
native: #00 pc 000133b8 /system/lib/libc.so (syscall+28) 
native: #01 pc 00016a81 /system/lib/libc.so (__pthread_cond_timedwait_relative(pthread_cond_t*, pthread_mutex_t*, timespec const*)+56) 
native: #02 pc 0003c73b /system/lib/libhwui.so (???) 
native: #03 pc 0003c771 /system/lib/libhwui.so (???) 
native: #04 pc 0083fd83 /data/dalvik-cache/arm/[email protected]@boot.oat (Java_android_view_ThreadedRenderer_nSyncAndDrawFrame__JJJF+134) 
at android.view.ThreadedRenderer.nSyncAndDrawFrame(Native method) 
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:340) 
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2530) 
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2352) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1982) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 
at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
at android.view.Choreographer.doFrame(Choreographer.java:550) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
at java.lang.reflect.Method.invoke!(Native method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

"RenderThread" prio=5 tid=26 Native 
| group="main" sCount=1 dsCount=0 obj=0x12c07820 self=0xa1c30800 
| sysTid=1303 nice=-4 cgrp=default sched=0/0 handle=0xa1c44c00 
| state=S schedstat=(0 0 0) utm=8314 stm=1817 core=0 HZ=100 
| stack=0xa0cc2000-0xa0cc4000 stackSize=1012KB 
| held mutexes= 
kernel: (couldn't read /proc/self/task/1303/stack) 
native: #00 pc 000133b8 /system/lib/libc.so (syscall+28) 
native: #01 pc 0001741b /system/lib/libc.so (__futex_wait_ex+42) 
native: #02 pc 00017761 /system/lib/libc.so (pthread_mutex_lock+230) 
native: #03 pc 0001d767 /system/vendor/lib/libgsl.so (os_mutex_lock+6) 
native: #04 pc 0001ea88 /system/vendor/lib/egl/libEGL_adreno.so (egliDoDestroyEGLImage+180) 
native: #05 pc 0008698d /system/vendor/lib/egl/libGLESv2_adreno.so (rb_image_try_release+32) 
native: #06 pc 00086acf /system/vendor/lib/egl/libGLESv2_adreno.so (rb_destroy_resource_updates_pure+136) 
native: #07 pc 00085491 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_perform_resolve+276) 
native: #08 pc 00085761 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_resolve+464) 
native: #09 pc 0008a891 /system/vendor/lib/egl/libGLESv2_adreno.so (rb_surface_swap+228) 
native: #10 pc 0006af89 /system/vendor/lib/egl/libGLESv2_adreno.so (gl2_surface_swap+76) 
native: #11 pc 0005d12b /system/vendor/lib/egl/libGLESv2_adreno.so (oglSwapBuffer+194) 
native: #12 pc 00013ddc /system/vendor/lib/egl/libEGL_adreno.so (qeglDrvAPI_eglSwapBuffers+1776) 
native: #13 pc 00007b60 /system/vendor/lib/egl/libEGL_adreno.so (eglSwapBuffers+16) 
native: #14 pc 00f /system/lib/libEGL.so (eglSwapBuffers+290) 
native: #15 pc 0003d291 /system/lib/libhwui.so (???) 
native: #16 pc 0003bd05 /system/lib/libhwui.so (???) 
native: #17 pc 0003beb5 /system/lib/libhwui.so (???) 
native: #18 pc 0003caed /system/lib/libhwui.so (???) 
native: #19 pc 0003e743 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+66) 
native: #20 pc 000104d5 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112) 
native: #21 pc 0005f839 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72) 
native: #22 pc 00010045 /system/lib/libutils.so (???) 
native: #23 pc 00016baf /system/lib/libc.so (__pthread_start(void*)+30) 
native: #24 pc 00014af3 /system/lib/libc.so (__start_thread+6) 
+0

क्या आपको कोई समाधान मिला? मेरे पास एक ही समस्या है और मैं केवल Nexus 7 के साथ इसे पुन: पेश कर सकता हूं जब ViewPager – Tughi

+0

@Tughi में अभी तक कोई समाधान नहीं है, लेकिन मुझे यह भी पता चलता है कि यह अपेक्षाकृत बड़ी संख्या में टुकड़े टुकड़े करने के बाद होता है ViewPager। मैंने अभी अपने FragmentStatePagerAdapter कार्यान्वयन में कुछ बदलाव किए हैं और देखेंगे कि इससे कोई फर्क पड़ता है या नहीं। – Clyde

+0

@ क्लाइड क्या आप समझा सकते हैं कि आपके परिवर्तन क्या हैं और क्या वे सहायक हैं? मेरे पास मेरे डिवाइस पर एक ही समस्या थी। WebView अद्यतनों को अनइंस्टॉल करने का समाधान केवल एक अस्थायी समाधान हो सकता है। – mars3142

उत्तर

1

मैं इस मुद्दे के साथ सामना भी लगता है कि क्रोमियम बग, कि नवीनतम क्रोमियम वेब-दृश्य 43.0.23567.121 से संबंधित है। आप अपने ऐप पर रोलबैक वेबव्यू करने का प्रयास कर सकते हैं और इसे फिर से जांच सकते हैं। मेरे लिए केवल नवीनतम वेबव्यू संस्करण पर पुन: उत्पन्न करने योग्य समस्या।

+1

ऐसा लगता है: https://code.google.com/p/chromium/issues/detail?id=501901 –

0

यह Android पर 7.0 WebView एक बग हो सकता है, आप नीचे दिए गए दो तरीके से इसे ठीक कर सकते हैं:

1, webView.setLayerType (View.LAYER_TYPE_SOFTWARE, नल);

2, एंड्रॉइड: हार्डवेयर एक्सेलेरेटेड = "झूठा"