googleads / googleads-mobile-unity

Official Unity Plugin for the Google Mobile Ads SDK
https://developers.google.com/admob/unity
Apache License 2.0
1.37k stars 1.08k forks source link

Huge spike in crashes. Has this plugin been tested with Unity 2019.3.xx? #1146

Closed PickleJesus123 closed 4 years ago

PickleJesus123 commented 4 years ago

Since upgrading my live app to Unity 2019.3.0f5 and admob 4.2.1, the number of crashes has skyrocketed for my app (it has been beyond the bad behaviour threshold for a whole month now). Most of my crash clusters have "googleads.internal" somewhere in them.

I can't help but notice that when I press "export project" and open my unity app in anrdoid studio, the build.gradle file for GoogleMobileAdsPlugin has 'targetsdkversion=19' (super outdated). No ndk abifilters are present in the GoogleMobileAdsPlugin build.gradle file either. Also, along the top of the GoogleMobileAdsPlugin build.gradle file it says "apply plugin: android-library" which is another deprecated feature now that com.android.library is used.

I would like to emphasize that quite literally 100% of unity android developers use the "il2cpp" build option (not Mono!) due to Google Play's 64 bit requirement. Also, please keep in mind the newer versions of unity use google's ndk R19 now

Extra info about my project: we previously had Google Games Services but have since removed it. We previously used ad mediation through googleads (our network included: admob, unityads and chartboost) but have removed the code for it and PAUSED mediation on our console. App is crashing like crazy now.

Here are some sample crash clusters I have been getting a lot recently:

00 pc 00000000000a798e /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

01 pc 00000000000a7947 /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

02 pc 000000000040cc97 /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

03 pc 000000000040bafb /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

04 pc 000000000040b3b1 /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

05 pc 000000000040a4c7 /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

06 pc 0000000000428ff3 /data/app/myapp/split_config.armeabi_v7a.apk (offset 0xd40000)

07 pc 0000000000587acf /data/app/myapp/oat/arm/base.odex (offset 0x551000)

and:

at com.google.android.gms.ads.internal.video.exoplayer3.k.n (com.google.android.gms.policy_ads_fdr_dynamite@21001004@21001004.272763194.272763194:19) at com.google.android.gms.ads.internal.video.exoplayer3.k.onSurfaceTextureAvailable (com.google.android.gms.policy_ads_fdr_dynamite@21001004@21001004.272763194.272763194:5) at android.view.TextureView.getHardwareLayer (TextureView.java:394) at android.view.TextureView.draw (TextureView.java:330) at android.view.View.updateDisplayListIfDirty (View.java:16221) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.updateDisplayListIfDirty (View.java:16216) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.updateDisplayListIfDirty (View.java:16216) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.updateDisplayListIfDirty (View.java:16216) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.draw (View.java:17259) at android.view.View.updateDisplayListIfDirty (View.java:16221) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.updateDisplayListIfDirty (View.java:16216) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.updateDisplayListIfDirty (View.java:16216) at android.view.View.draw (View.java:17022) at android.view.ViewGroup.drawChild (ViewGroup.java:3777) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3560) at android.view.View.draw (View.java:17259) at com.android.internal.policy.DecorView.draw (DecorView.java:801) at android.view.View.updateDisplayListIfDirty (View.java:16221) at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:677) at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:683) at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:797) at android.view.ViewRootImpl.draw (ViewRootImpl.java:3000) at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:2794) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2382) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1372) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6782) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:933) at android.view.Choreographer.doCallbacks (Choreographer.java:742) at android.view.Choreographer.doFrame (Choreographer.java:674) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:919) at android.os.Handler.handleCallback (Handler.java:761) at android.os.Handler.dispatchMessage (Handler.java:98) at android.os.Looper.loop (Looper.java:156) at android.app.ActivityThread.main (ActivityThread.java:6605) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:999) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:889)

stowy commented 4 years ago

Hi @famishedmammal - thanks for reporting. This looks like an issue with the Android SDK, specifically exoplayer3. Are there any other crash logs? It would be better to track if you reported the issue on the developer forum as they have email support and can file and track bugs etc.

PickleJesus123 commented 4 years ago

Hey @stowy , thanks for the quick reply. I've made a post on the developer forum as you recommended.

90% of the errors are Java.lang.Error relating to "split_config". Could it be that the newest version of Admob Plugin isn't suited to NDK R19 which Unity uses in 2019.3.0f5? Or perhaps something essential is getting stripped now that developers always split their binaries (ARMv7 + ARM64) and always use il2cpp in 'build options'? As I mentioned in my original post, there seem to be various issues with GoogleMobileAdsPlugin's build.gradle file, which I assume is indicative of deeper issues.

We are also getting errors like this:

java.lang.Error: Version '2019.3.0f5 (44796c9d3c2c)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a' Build fingerprint: 'HUAWEI/ATU-L22/HWATU-QG:8.0.0/HUAWEIATU-L22/157(C636):user/release-keys' Revision: '0' ABI: 'arm64' Timestamp: 2020-01-21 16:57:36+0800 pid: 29918, tid: 30499, name: Thread-46 >>> com.my.appname <<< uid: 10363 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4a Cause: null pointer dereference x0 0000000000000000 x1 0000000000000000 x2 0000007c176d0450 x3 0000007c176d0580 x4 0000000000000000 x5 0000000000000168 x6 0000007caf8028c0 x7 ef23a294ad47a75e x8 0000007c2f1711ec x9 000000000000000a x10 0000000000004000 x11 0000007c176d2588 x12 0000000000000000 x13 0000007c176d2588 x14 0000007c176d24f0 x15 0000000000007723 x16 0000007c93bd3200 x17 0000007cb27632b0 x18 0000000000004000 x19 0000007c176d0580 x20 0000000000000000 x21 0000000000000000 x22 0000007c176d0450 x23 0000000000000003 x24 0000000000000000 x25 0000007c29d0a0a0 x26 0000000000000000 x27 000000009c2d6648 x28 0000000000000004 x29 0000007c176d06a8 sp 0000007c176d03c0 lr 0000007c92bdd744 pc 0000007c2f19cbf0 backtrace: at libil2cpp.0x488bf0 (Native Method) at libunity.0x5bb740 (Native Method) at libunity.0x5c80a8 (Native Method) at libunity.0x2906ac (Native Method) at base.0x5b740 (Native Method)

thiagolr commented 4 years ago

Is this already fixed? When will it be available?