Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android设备上webview会崩溃 #3

Open
lemon-dkk opened this issue Nov 27, 2015 · 3 comments
Open

Android设备上webview会崩溃 #3

lemon-dkk opened this issue Nov 27, 2015 · 3 comments

Comments

@lemon-dkk
Copy link

程序运行在Android 4.4.2的华为荣耀6上,点击moments进入页面,然后点击后退按钮是程序会崩溃。
webview压栈问题?

@qyvlik
Copy link
Contributor

qyvlik commented Nov 29, 2015

现在最新的版本的问题是,无法打开monents这个页面,控制台打印

本版本

D/WellChat( 4700): qrc:///qml/WellChat/Sparrow/Page.qml:213 (__PushPage): qml: component errorString:  qrc:/qml/WellChat/BussinessPage/Discover/MomentsPage/MomentsPage.qml:89 Type WebPage unavailable
D/WellChat( 4700): qrc:///qml/WellChat/Sparrow/WebPage.qml:31 Invalid alias target location: loading

应该是要加载 qrc:///qml/WellChat/Sparrow/+android/WebPage.qml 的,不过从提示的角度来说,应该是成功加载了这个路径下的文件,只不过打印的时候,会打印qrc:///qml/WellChat/Sparrow/WebPage.qml,现在问题是,这个文件有错误,之前不会的。

@qyvlik
Copy link
Contributor

qyvlik commented Nov 29, 2015

# 尝试修复WebPage的奔溃问题

尝试修复WebPage的奔溃问题,但是无法在安卓5.2上重现安卓4.4.2打开WebPage的奔溃现象,但是不知为何,现在打开MomentsPage.qml,无法显示TopBar。布局全部打乱。真糟糕。在修复之前还提示

D/WellChat( 4700): qrc:///qml/WellChat/Sparrow/Page.qml:213
(__PushPage): qml: component errorString:
qrc:/qml/WellChat/BussinessPage/Discover/MomentsPage/MomentsPage.qml:89
Type WebPage unavailable
D/WellChat( 4700): qrc:///qml/WellChat/Sparrow/WebPage.qml:31 Invalid
alias target location: loading

很懵逼啊。

点击Moments控制台打印如下:

I/WebViewFactory(17857): Loading com.android.webview version 1.0 (code 499992)
I/LibraryLoader(17857): Time to load native libraries: 2 ms (timestamps 1164-1166)
I/LibraryLoader(17857): Expected native library version number "",actual native library version number ""
V/WebViewChromiumFactoryProvider(17857): Binding Chromium to main looper Looper (main, tid 1) {1b42340f}
I/LibraryLoader(17857): Expected native library version number "",actual native library version number ""
I/chromium(17857): [INFO:library_loader_hooks.cc(108)] Chromium logging enabled: level = 0, default verbosity = 0
I/BrowserStartupController(17857): Initializing chromium process, singleProcess=true
W/art     (17857): Attempt to remove local handle scope entry from IRT, ignoring
W/AudioManagerAndroid(17857): Requires BLUETOOTH permission
W/chromium(17857): [WARNING:resource_bundle.cc(304)] locale_file_path.empty()
I/chromium(17857): [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=62 off=1382828 len=3242
I/chromium(17857): [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from, fd:63 off:239276 len:1143506
D/MALI    (17857): eglCreateContext:206: [MALI] eglCreateContext display 0xf4a96200, share context 0x0 here.
D/MALI    (17857): gles_context_new:248: Create GLES ctx 0xdc12d008 successfully
D/MALI    (17857): eglCreateContext:543: [MALI] eglCreateContext end. Created context 0xd953afc0 here.
D/MALI    (17857): eglDestroyContext:559: [MALI] eglDestroyContext display 0xf4a96200, context 0xd953afc0 here.
D/MALI    (17857): gles_context_delete:435: Destroy GLES ctx 0xdc12d008 successfully
D/PasswordDatabase(17857): constructor password.db
W/chromium(17857): [WARNING:data_reduction_proxy_settings.cc(328)] SPDY proxy OFF at startup
W/art     (17857): Attempt to remove local handle scope entry from IRT, ignoring
D/AwPasswordHandler(17857): getInstance, sInstance = com.android.org.chromium.android_webview.AwPasswordHandler@df29607
W/chromium(17857): [WARNING:password_handler.cc(26)] create-->contents = 0xdc06aa00, delegate = 0xe2013470
W/chromium(17857): [WARNING:password_handler.cc(34)] attaching to web_contents
W/AwContents(17857): onDetachedFromWindow called when already detached. Ignoring
I/SurfaceView(17857): updateWindow -- setFrame, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
I/System.out(17857): try to call native method
D/WellChat(17857): ..\WellChat\Sparrow\qtbridgingandroid.cpp:83 (static void QtBridgingAndroid::notifiedKeyboardRectangle(JNIEnv*, jobject, jint, jint, jint, jint)): invoke method notifiedKeyboardRectangle:  true
I/SurfaceView(17857): updateWindow -- OnPreDrawListener, mHaveFrame = true, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
V/SettingsInterface(17857):  from settings cache , name = mz_home_key_touch_behavior , value = 0
V/SettingsInterface(17857):  from settings cache , name = mz_float_touch_enable , value = 0
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bbe00,w=1080,h=1920)
I/BufferQueueProducer(  273): [org.gdpurjyfs.wellchat/org.gdpurjyfs.wellchat.WellChatActivity](this:0x7f8dd25000,id:2959,api:1,p:17857,c:273) new GraphicBuffer needed
D/MPlugin (17857): createInstance(): Begin = 126331319
D/MPlugin (17857): create Instance (two parameters) with : com.mediatek.common.telephony.IOnlyOwnerSimSupport
D/MPlugin (17857): Clazz exists on mapping table : false
E/MPlugin (17857): Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
D/MPlugin (17857): createInstance(): End = 126331319
D/GraphicBuffer(17857): register, handle(0xefc9be20) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
I/BufferQueueProducer(  273): [org.gdpurjyfs.wellchat/org.gdpurjyfs.wellchat.WellChatActivity](this:0x7f8dd25000,id:2959,api:1,p:17857,c:273) queueBuffer: fps=0.23 dur=4386.40 max=4386.40 min=4386.40
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
I/SurfaceView(17857): updateWindow -- setFrame, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
I/System.out(17857): try to call native method
D/WellChat(17857): ..\WellChat\Sparrow\qtbridgingandroid.cpp:83 (static void QtBridgingAndroid::notifiedKeyboardRectangle(JNIEnv*, jobject, jint, jint, jint, jint)): invoke method notifiedKeyboardRectangle:  true
I/SurfaceView(17857): updateWindow -- OnPreDrawListener, mHaveFrame = true, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
V/SettingsInterface(17857):  from settings cache , name = mz_home_key_touch_behavior , value = 0
V/SettingsInterface(17857):  from settings cache , name = mz_float_touch_enable , value = 0
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bbe00,w=1080,h=1920)
I/BufferQueueProducer(  273): [org.gdpurjyfs.wellchat/org.gdpurjyfs.wellchat.WellChatActivity](this:0x7f8dd25000,id:2959,api:1,p:17857,c:273) new GraphicBuffer needed
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
D/GraphicBuffer(17857): register, handle(0xd960b520) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
W/MALI    (17857): glDrawArrays:714: [MALI] glDrawArrays takes more than 5ms here. Total elapse time(us): 6410
I/BufferQueueProducer(  273): [SurfaceView](this:0x7f8dccb000,id:2960,api:1,p:17857,c:273) RunningBehind, queued size:2
W/BindingManager(17857): Cannot call determinedVisibility() - never saw a connection for the pid: 17857
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
I/SurfaceView(17857): updateWindow -- OnPreDrawListener, mHaveFrame = true, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
V/SettingsInterface(17857):  from settings cache , name = mz_home_key_touch_behavior , value = 0
V/SettingsInterface(17857):  from settings cache , name = mz_float_touch_enable , value = 0
D/WebViewDraw(17857): callDrawGLFunction method doesn't exist
D/WebViewDraw(17857): java.lang.NoSuchMethodException: callDrawGLFunction [long]
D/WebViewDraw(17857):   at java.lang.Class.getMethod(Class.java:664)
D/WebViewDraw(17857):   at java.lang.Class.getMethod(Class.java:643)
D/WebViewDraw(17857):   at android.webkit.WebViewDelegate.callDrawGlFunction(WebViewDelegate.java:106)
D/WebViewDraw(17857):   at com.android.webview.chromium.WebViewDelegateFactory$ProxyDelegate.callDrawGlFunction(WebViewDelegateFactory.java:139)
D/WebViewDraw(17857):   at com.android.webview.chromium.DrawGLFunctor.requestDrawGL(DrawGLFunctor.java:83)
D/WebViewDraw(17857):   at com.android.webview.chromium.WebViewChromium$WebViewNativeGLDelegate.requestDrawGL(WebViewChromium.java:2221)
D/WebViewDraw(17857):   at com.android.org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDraw(AwContents.java:2496)
D/WebViewDraw(17857):   at com.android.org.chromium.android_webview.AwContents.onDraw(AwContents.java:1116)
D/WebViewDraw(17857):   at com.android.webview.chromium.WebViewChromium.onDraw(WebViewChromium.java:1756)
D/WebViewDraw(17857):   at android.webkit.WebView.onDraw(WebView.java:2469)
D/WebViewDraw(17857):   at android.view.View.draw(View.java:15594)
D/WebViewDraw(17857):   at android.view.View.updateDisplayListIfDirty(View.java:14483)
D/WebViewDraw(17857):   at android.view.View.getDisplayList(View.java:14512)
D/WebViewDraw(17857):   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520)
D/WebViewDraw(17857):   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499)
D/WebViewDraw(17857):   at android.view.View.updateDisplayListIfDirty(View.java:14433)
D/WebViewDraw(17857):   at android.view.View.getDisplayList(View.java:14512)
D/WebViewDraw(17857):   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520)
D/WebViewDraw(17857):   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499)
D/WebViewDraw(17857):   at android.view.View.updateDisplayListIfDirty(View.java:14433)
D/WebViewDraw(17857):   at android.view.View.getDisplayList(View.java:14512)
D/WebViewDraw(17857):   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520)
D/WebViewDraw(17857):   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499)
D/WebViewDraw(17857):   at android.view.View.updateDisplayListIfDirty(View.java:14433)
D/WebViewDraw(17857):   at android.view.View.getDisplayList(View.java:14512)
D/WebViewDraw(17857):   at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3520)
D/WebViewDraw(17857):   at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3499)
D/WebViewDraw(17857):   at android.view.View.updateDisplayListIfDirty(View.java:14433)
D/WebViewDraw(17857):   at android.view.View.getDisplayList(View.java:14512)
D/WebViewDraw(17857):   at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:279)
D/WebViewDraw(17857):   at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:285)
D/WebViewDraw(17857):   at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:335)
D/WebViewDraw(17857):   at android.view.ViewRootImpl.draw(ViewRootImpl.java:3048)
D/WebViewDraw(17857):   at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2857)
D/WebViewDraw(17857):   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2468)
D/WebViewDraw(17857):   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1329)
D/WebViewDraw(17857):   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6780)
D/WebViewDraw(17857):   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:818)
D/WebViewDraw(17857):   at android.view.Choreographer.doCallbacks(Choreographer.java:621)
D/WebViewDraw(17857):   at android.view.Choreographer.doFrame(Choreographer.java:584)
D/WebViewDraw(17857):   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:804)
D/WebViewDraw(17857):   at android.os.Handler.handleCallback(Handler.java:815)
D/WebViewDraw(17857):   at android.os.Handler.dispatchMessage(Handler.java:104)
D/WebViewDraw(17857):   at android.os.Looper.loop(Looper.java:194)
D/WebViewDraw(17857):   at android.app.ActivityThread.main(ActivityThread.java:5691)
D/WebViewDraw(17857):   at java.lang.reflect.Method.invoke(Native Method)
D/WebViewDraw(17857):   at java.lang.reflect.Method.invoke(Method.java:372)
D/WebViewDraw(17857):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
D/WebViewDraw(17857):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bbe00,w=1080,h=1920)
I/BufferQueueProducer(  273): [org.gdpurjyfs.wellchat/org.gdpurjyfs.wellchat.WellChatActivity](this:0x7f8dd25000,id:2959,api:1,p:17857,c:273) new GraphicBuffer needed
I/BufferQueueProducer(  273): [SurfaceView](this:0x7f8dccb000,id:2960,api:1,p:17857,c:273) RunningBehind, queued size:2
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bc500,w=1080,h=1845)
D/GraphicBuffer(17857): register, handle(0xd960b5c0) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00)
W/MALI    (17857): glDrawArrays:714: [MALI] glDrawArrays takes more than 5ms here. Total elapse time(us): 7300
I/SurfaceView(17857): updateWindow -- OnPreDrawListener, mHaveFrame = true, this = org.qtproject.qt5.android.QtSurface{b5856ed V.E..... ........ 0,0-1080,1845 #1}
V/SettingsInterface(17857):  from settings cache , name = mz_home_key_touch_behavior , value = 0
V/SettingsInterface(17857):  from settings cache , name = mz_float_touch_enable , value = 0
I/BufferQueueProducer(  273): [SurfaceView](this:0x7f8dccb000,id:2960,api:1,p:17857,c:273) RunningBehind, queued size:2
D/Surface (17857): Surface::setBuffersDimensions(this=0xf49bbe00,w=1080,h=1920)

@lemon-dkk
Copy link
Author

我这里控制台不会打印错误,而且可以打开moments,但是依然会崩溃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants