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 crash #63

Open
DVSoftware opened this issue Sep 4, 2018 · 5 comments
Open

Android crash #63

DVSoftware opened this issue Sep 4, 2018 · 5 comments

Comments

@DVSoftware
Copy link
Contributor

DVSoftware commented Sep 4, 2018

I'm getting the following error (version 1.0.5):

java.lang.UnsatisfiedLinkError: No implementation found for void com.taobao.gcanvas.surface.GTextureViewCallback.onSurfaceChanged(java.lang.String, android.view.Surface, int, int, int, java.lang.String) (tried Java_com_taobao_gcanvas_surface_GTextureViewCallback_onSurfaceChanged and Java_com_taobao_gcanvas_surface_GTextureViewCallback_onSurfaceChanged__Ljava_lang_String_2Landroid_view_Surface_2IIILjava_lang_String_2)
                                                                        at com.taobao.gcanvas.surface.GTextureViewCallback.onSurfaceChanged(Native Method)
                                                                        at com.taobao.gcanvas.surface.GTextureViewCallback.onSurfaceTextureAvailable(GTextureViewCallback.java:81)
                                                                        at android.view.TextureView.getHardwareLayer(TextureView.java:390)
                                                                        at android.view.TextureView.draw(TextureView.java:339)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18073)
                                                                        at android.view.View.draw(View.java:18851)
                                                                        at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
                                                                        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
                                                                        at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:663)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18064)
                                                                        at android.view.View.draw(View.java:18851)
                                                                        at android.view.ViewGroup.drawChild(ViewGroup.java:4214)
                                                                        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4000)
                                                                        at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:663)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18064)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4198)
                                                                        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4178)
                                                                        at android.view.View.updateDisplayListIfDirty(View.java:18032)
                                                                        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:643)
                                                                        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:649)
                                                                        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:757)
                                                                        at android.view.ViewRootImpl.draw(ViewRootImpl.java:2980)
                                                                        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2794)
                                                                        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2347)
09-04 12:24:42.353 9599-9599/com.app E/AndroidRuntime:    		at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
                                                                        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
                                                                        at android.view.Choreographer.doCallbacks(Choreographer.java:723)
                                                                        at android.view.Choreographer.doFrame(Choreographer.java:658)
                                                                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
                                                                        at android.os.Handler.handleCallback(Handler.java:789)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                        at android.os.Looper.loop(Looper.java:164)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

Reproducible demo:
https://github.com/DVSoftware/canvastest

@DVSoftware
Copy link
Contributor Author

DVSoftware commented Sep 5, 2018

Seems that none of the prebuilt binaries matches any of my devices. There is only armeabi but the app looks for armeabi-v7a on the phone, and x86 on the simulator

@DVSoftware
Copy link
Contributor Author

I managed to run it by building from the source, but the app does not render anything, only white screen...

@pongponglau
Copy link

I can run gcanvas on iphone. However, the android app crashes, both prebuilt and self-compiled version on armeabi-v7a phone. Do you have any suggestion for me to fix the issue?

Thanks a lot

@pongponglau
Copy link

The error stack trace is:

02-14 17:08:11.599 11331-11331/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rngcanvassample, PID: 11331
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.taobao.gcanvas.GCanvasJNI.refreshArguments(GCanvasJNI.java:85)
at com.taobao.gcanvas.surface.GTextureViewCallback.onSurfaceTextureAvailable(GTextureViewCallback.java:75)
at android.view.TextureView.getHardwareLayer(TextureView.java:390)
at android.view.TextureView.draw(TextureView.java:339)
at android.view.View.updateDisplayListIfDirty(View.java:18168)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:804)
at android.view.View.updateDisplayListIfDirty(View.java:18159)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:804)
at android.view.View.draw(View.java:19221)
at android.view.View.updateDisplayListIfDirty(View.java:18168)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at android.view.View.updateDisplayListIfDirty(View.java:18159)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at android.view.View.updateDisplayListIfDirty(View.java:18159)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at android.view.View.updateDisplayListIfDirty(View.java:18159)
at android.view.View.draw(View.java:18946)
at android.view.ViewGroup.drawChild(ViewGroup.java:4238)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
at android.view.View.draw(View.java:19221)
at com.android.internal.policy.DecorView.draw(DecorView.java:791)
at android.view.View.updateDisplayListIfDirty(View.java:18168)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:685)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:691)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:799)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3053)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2848)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2401)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1434)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6868)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1026)
at android.view.Choreographer.doCallbacks(Choreographer.java:838)
at android.view.Choreographer.doFrame(Choreographer.java:769)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1012)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:171)
at android.app.ActivityThread.main(ActivityThread.java:6633)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

@flyskywhy
Copy link

@DVSoftware

Since Alibaba feat: delete weex bridge & reactive bridge, here comes the @flyskywhy/react-native-gcanvas npm package.

After months work, @flyskywhy/react-native-gcanvas runs well on Android and iOS, fix several bugs and add feat: support drawImage() from require('some.png') on Android, iOS and Web described in Changelog.md, refactor with the detailed Example As Usage in README.md.

With Performance Test Result, and Convenient With Browser-like canvas APIs with the easily <canvas/> ported example react-native-particles-bg runs on Android, iOS and Web, @flyskywhy/react-native-gcanvas is the best choice for now 😋

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

3 participants