Hello Devs and Cocos Team,
My Android game on Google Play is suffering a lot. I’m seeing very bad reports even I recently updated my game with latest cocos2dx 3.16 and sdkbox/Admob is updated to the latest.
How do I solve these issues? Is there any tools or way out to check on which point these slow rendering or ANR is happening? PLEASE HELP!!! @walzer@nite@zhangxm@yinjimmy
Yes there are hell lot of reports which I don’t understand. This is the screenshot of the ANR reports.
And below is the details of the first cluster(ANR).
If you would like to see I can send you the reports in csv or excel file in PM.
Can you figure it out what’s exactly going wrong?
waiting on <0x0cd95830> (a android.opengl.GLSurfaceView$GLThreadManager)
at android.opengl.GLSurfaceView$GLThread.surfaceDestroyed (GLSurfaceView.java:1636)
locked <0x0cd95830> (a android.opengl.GLSurfaceView$GLThreadManager)
at android.opengl.GLSurfaceView.surfaceDestroyed (GLSurfaceView.java:541)
at android.view.SurfaceView.updateWindow (SurfaceView.java:594)
at android.view.SurfaceView.onWindowVisibilityChanged (SurfaceView.java:246)
at android.view.View.dispatchWindowVisibilityChanged (View.java:9152)
at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1170)
at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1170)
at android.view.ViewGroup.dispatchWindowVisibilityChanged (ViewGroup.java:1170)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1350)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1093)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6010)
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:5912)
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:1405)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)
You need to look into the merged manifest. Every (gradle) dependency is able to inject data into your AndroidManifest.xml file. What’s the packageName of your game, so I can install and check it by myself.
For ads, I’m using Admob through SDKBOX only. Putting ad is the only option I’ve got for monetization. So no solution for this issue? Or is there any thing SDKBOX can optimize on their part to minimize this issue?
@energyy Also, may I ask which SDK/NDK do you recommend for 3.14 or 3.15.1?
Also, last but not least, 3.15.1 or 3.14.1? Android Studio support (introduced in 3.15) “shouldn’t” be decisive factor to choose 3.15.1 over 3.14.1, any other reason should apply and, if possible, be explained.
We using 3.15.1 - but 3.14 also is good working one, for NDK we chosed NDK 13B .
Regarding android studio support - it’s totally not problem to add it to any cocos version, u just need to copy over build.gradle file from 3.15 and add some extra gradle config files and it will work same. There is just one extra command added which running NDK compile from gradle .