Scirra / Construct-bugs

Public bug report submissions for Construct 3 and Construct Animate. Please read the guidelines then click the 'Issues' tab to get started.
https://www.construct.net
107 stars 83 forks source link

ANDROID EXPORT FREEZE #5237

Closed listpull closed 2 years ago

listpull commented 2 years ago

Problem description

I just exported a signed Android Apk and its freezes before reaching the first screen load.

Attach a .c3p

Kiwi c3 demo

Steps to reproduce

exported android signed apk

1. 2. 3.

Observed result

Expected result

More details

Affected browsers/platforms: Android pixel 4 android 10.0

First affected release: r268

System details

View details PASTE HERE

image

listpull commented 2 years ago

Also, When I try to Export with Android Legacy Files instead of Modern Files. c3 then crashes.

Error report information Type: unhandled exception File: blob:https://editor.construct.net/c3f9e41b-9438-4347-88d6-a5afdc5e3430, line 502, col 4 Message: Uncaught RangeError: Maximum call stack size exceeded Stack: null Construct 3 version: r268 URL: https://editor.construct.net/ Date: Sun Nov 14 2021 16:07:24 GMT-0500 (Eastern Standard Time) Uptime: 67.9 s

Platform information Browser: Chrome Browser version: 95.0.4638.69 Browser engine: Chromium Context: browser Operating system: Windows Operating system version: 10 Device type: desktop Device pixel ratio: 1.25 Logical CPU cores: 8 Approx. device memory: 8 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 C3 release: r268 (stable) Language setting: en-US

WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: no Supports highp precision: yes Vendor: Google Inc. (Google) Renderer: ANGLE (Google, Vulkan 1.2.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver-5.0.0) Major performance caveat: no Maximum texture size: 8192 Point size range: 1 to 1023 Extensions: EXT_color_buffer_float, EXT_color_buffer_half_float, EXT_float_blend, EXT_texture_compression_bptc, EXT_texture_compression_rgtc, EXT_texture_filter_anisotropic, KHR_parallel_shader_compile, OES_texture_float_linear, WEBGL_compressed_texture_astc, WEBGL_compressed_texture_etc, WEBGL_compressed_texture_etc1, WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_s3tc_srgb, WEBGL_debug_renderer_info, WEBGL_lose_context, WEBGL_multi_draw, OVR_multiview2

Capture

arcadesindo commented 2 years ago

hi @jayjmon is it the same issue? https://github.com/Scirra/Construct-3-bugs/issues/5211

listpull commented 2 years ago

hi @jayjmon is it the same issue? #5211

No, I tried without admob and also tried the demo Kiwi game that doesnt have admob. Also, iOS export works just fine with admob.

listpull commented 2 years ago

UPDATE*** This does have to do with admob. I removed Mobile Advert c3 plugin and I also had to export with Android Cordova exports, use xcode to add the Android platform then build the android app using android studio. Using C3 Android export doesn't seem to work.

DiegoScirra commented 2 years ago

Can't seem to reproduce this at all.

Have tried to export with and without mobile adverts and it seems to work. Have also tried exporting a signed APK using the build service as well as generating a signed APK from an exported Android Studio project. All cases produce the same results in the emulator and a real device.

listpull commented 2 years ago

Can't seem to reproduce this at all.

Have tried to export with and without mobile adverts and it seems to work. Have also tried exporting a signed APK using the build service as well as generating a signed APK from an exported Android Studio project. All cases produce the same results in the emulator and a real device.

Without mobile adverts it works but with mobile adverts, How is it not reproduceable when all your users are experiencing the same issue? I just tried it on r268(stable version) on multiple devices both real and the emulator and it still does not work with mobile adverts. My app freezes right after the load bar screen and before the first screen load. So All I see is a screen with the background color. From the looks of things I'm one of many who is experiencing this with mobile adverts so it is not uncommon. Here is the android studio log:

11/19 08:31:53: Launching 'app' on TCL Alcatel_5044C. Install successfully finished in 32 s 396 ms. $ adb shell am start -n "com.REMOVED.REMOVED/com.REMOVED.REMOVED.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Connected to process 31370 on device 'tcl-alcatel_5044c-a7ed745'. Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page. I/art: Late-enabling -Xcheck:jni W/LoadedApk: ** mResDir: /data/app/com.REMOVED.REMOVED-1/base.apk W/LoadedApk: myResfileName: /data/dalvik-cache/arm/data@app@com.REMOVED.REMOVED-1@base.apk@classes.dex myResfileName: /data/dalvik-cache/arm/data@app@com.REMOVED.REMOVED-1@base.apk@classes.dex is not exist mResDir: /data/app/com.REMOVED.REMOVED-1/base.apk is bigger than 20M. We will pop the text. W/LoadedApk: ===================== W/System: ClassLoader referenced unknown path: /data/app/com.REMOVED.REMOVED-1/lib/arm V/BoostFramework: mAcquireFunc method = public int com.qualcomm.qti.Performance.perfLockAcquire(int,int[]) mReleaseFunc method = public int com.qualcomm.qti.Performance.perfLockRelease() V/BoostFramework: mAcquireTouchFunc method = public int com.qualcomm.qti.Performance.perfLockAcquireTouch(android.view.MotionEvent,android.util.DisplayMetrics,int,int[]) mIOPStart method = public int com.qualcomm.qti.Performance.perfIOPrefetchStart(int,java.lang.String) mIOPStop method = public int com.qualcomm.qti.Performance.perfIOPrefetchStop() V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@db2f19b I/CordovaLog: Changing log level to DEBUG(3) I/CordovaActivity: Apache Cordova native platform version 10.1.0 is starting D/CordovaActivity: CordovaActivity.onCreate() W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable W/LoadedApk: ** /data/app/com.android.chrome-1/split_chrome.apk /data/app/com.android.chrome-1/split_config.en.apk /data/app/com.android.chrome-1/split_extra_icu.apk /data/app/com.android.chrome-1/split_feedv2.apk /data/app/com.android.chrome-1/split_weblayer.apk mResDir: /data/app/com.android.chrome-1/base.apk myResfileName: /data/dalvik-cache/arm/data@app@com.android.chrome-1@base.apk@classes.dex myResfileName: /data/dalvik-cache/arm/data@app@com.android.chrome-1@base.apk@classes.dex is not exist mResDir: /data/app/com.android.chrome-1/base.apk is bigger than 20M. We will pop the text.

I/WebViewFactory: Loading com.android.chrome version 90.0.4430.91 (code 443009120) I/cr_LibraryLoader: Loaded native library version number "90.0.4430.91" I/cr_CachingUmaRecorder: Flushed 4 samples from 4 histograms. W/ResourceType: Failure getting entry for 0x7f130709 (t=18 e=1801) (error -2147483647) D/SystemWebViewEngine: CordovaWebView is running on device made by: TCL D/PluginManager: init() D/PluginManager: getPlugin - put: CordovaAllowListPlugin D/PluginManager: startupPlugins: put - AdMob startupPlugins: put - Consent startupPlugins: put - Device startupPlugins: put - InAppBrowser startupPlugins: put - SocialSharing D/FileUtils: Unrecognized extra filesystem identifier: assets D/PluginManager: getPlugin - put: File V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@789e136 D/PluginManager: getPlugin - put: SplashScreen D/PluginManager: startupPlugins: put - AndroidFullScreen startupPlugins: put - RateApp startupPlugins: put - CoreAndroid D/CordovaWebViewImpl: >>> loadUrl(https://localhost/index.html) W/cr_media: Requires BLUETOOTH permission E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY) I/Adreno-EGL: : EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BR.1.2.9_RB1.07.01.01.254.016_msm8909_refs/tags/AU_LINUX_ANDROID_LA.BR.1.2.9_RB1.07.01.01.254.016__release_AU (I750f7f2fa6) OpenGL ES Shader Compiler Version: E031.31.00.01 Build Date: 01/09/17 Mon Local Branch: Remote Branch: refs/tags/AU_LINUX_ANDROID_LA.BR.1.2.9_RB1.07.01.01.254.016 Local Patches: NONE Reconstruct Branch: NOTHING W/Adreno-ES20: : open failed: errno 13 D/CordovaActivity: Started the activity. D/CordovaActivity: Resumed the activity. I/OpenGLRenderer: Initialized EGL, version 1.4 D/OpenGLRenderer: Swap behavior 1 W/Adreno-ES20: : open failed: errno 13 E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY) W/Adreno-ES20: : open failed: errno 13 D/CordovaWebViewImpl: onPageDidNavigate(https://localhost/index.html) D/PluginManager: postMessage: onPageStarted D/JsMessageQueue: Set native->JS mode to EvalBridgeMode D/PluginManager: getPlugin - put: CoreAndroid D/PluginManager: postMessage: spinner D/PluginManager: getPlugin - put: Device D/CordovaWebViewImpl: onPageFinished(https://localhost/index.html) D/PluginManager: postMessage: onPageFinished I/AdMobPlus: Initialize plugin D/PluginManager: getPlugin - put: AdMob D/AdMobPlus: Execute ready D/PluginManager: getPlugin - put: Consent D/Consent: ready D/PluginManager: getPlugin - put: AndroidFullScreen I/App: WARNING: Back Button Default Behavior will be overridden. The backbutton event will be fired! W/CordovaPlugin: Attempted to send a second callback for ID: AndroidFullScreen1478070615 Result was: "OK" E/chromium: [ERROR:context_group.cc(154)] ContextResult::kFatalFailure: WebGL2 blocklisted I/chromium: [INFO:audio_latency.cc(167)] audioHardwareBufferSize = 3848 I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2) D/AudioTrack: Client defaulted notificationFrames to 240 for frameCount 480 I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program '' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'hsladjust' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'highlightshadow' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'sharpen' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'burn' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'blurhorizontal' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'blurvertical' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'vignette' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(918)] "[WebGL] Shader program 'inverse' compilation log: --From Vertex Shader:--From Fragment Shader:Link was successful.", source: https://localhost/scripts/c3runtime.js (918) I/chromium: [INFO:CONSOLE(2924)] "Made with Construct 3, the game and app creator :: https://www.construct.net", source: https://localhost/scripts/c3runtime.js (2924) I/chromium: [INFO:CONSOLE(2925)] "[C3 runtime] Hosted in DOM, rendering with WebGL 1 [Adreno (TM) 304] (standard compositing)", source: https://localhost/scripts/c3runtime.js (2925) D/PluginManager: postMessage: splashscreen D/AdMobPlus: Execute start W/LoadedApk: ** /data/app/com.google.android.gms-2/split_config.en.apk mResDir: /data/app/com.google.android.gms-2/base.apk myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex W/LoadedApk: myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex is not exist mResDir: /data/app/com.google.android.gms-2/base.apk is bigger than 20M. We will pop the text.

W/ResourceType: ResTable_typeSpec entry count inconsistent: given 67, previously 69 W/ResourceType: ResTable_typeSpec entry count inconsistent: given 5678, previously 5679 W/FA: Specified origin or custom app id is null. Both parameters will be ignored. I/DynamiteModule: Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:210890500 Selected remote version of com.google.android.gms.ads.dynamite, version >= 210890500 V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found. I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:0 and remote module com.google.android.gms.measurement.dynamite:49 Selected remote version of com.google.android.gms.measurement.dynamite, version >= 49 V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils W/LoadedApk: ** W/LoadedApk: ** /data/app/com.google.android.gms-2/split_config.en.apk W/LoadedApk: /data/app/com.google.android.gms-2/split_config.en.apk mResDir: /data/app/com.google.android.gms-2/base.apk W/LoadedApk: mResDir: /data/app/com.google.android.gms-2/base.apk W/LoadedApk: myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex is not exist mResDir: /data/app/com.google.android.gms-2/base.apk is bigger than 20M. We will pop the text. W/LoadedApk: ===================== W/LoadedApk: myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex myResfileName: /data/dalvik-cache/arm/data@app@com.google.android.gms-2@base.apk@classes.dex is not exist mResDir: /data/app/com.google.android.gms-2/base.apk is bigger than 20M. We will pop the text.

W/System: ClassLoader referenced unknown path: I/DynamiteModule: Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:210890500 Selected remote version of com.google.android.gms.ads.dynamite, version >= 210890500 W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/0000011c/n/armeabi-v7a W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/0000011c/n/armeabi W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000116/n/armeabi-v7a ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000116/n/armeabi D/DynamitePackage: Instantiated singleton DynamitePackage. Instantiating com.google.android.gms.ads.ChimeraMobileAdsSettingManagerCreatorImpl W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found. V/FA: App measurement collection enabled V/FA: App measurement enabled for app package, google app id: com.REMOVED.REMOVED I/FA: App measurement initialized, version: 40013 To enable debug logging run: adb shell setprop log.tag.FA VERBOSE I/FA: To enable faster debug mode event logging run: adb shell setprop debug.firebase.analytics.app com.REMOVED.REMOVED D/FA: Debug-level message logging enabled D/NetworkSecurityConfig: No Network Security Config specified, using platform default V/FA: Checking service availability V/FA: Service available V/FA: Persisting first open: 1637328768495 E/FA: Missing google_app_id. Firebase Analytics disabled. See https://goo.gl/NAOOOI E/FA: Uploading is not possible. App measurement disabled D/FA: Resetting analytics data (FE) I/Ads: Updating ad debug logging enablement. V/FA: App measurement setting deferred collection: false W/Ads: Update ad debug logging enablement as false W/PluginManager: THREAD WARNING: exec() call to AdMob.start blocked the main thread for 821ms. Plugin should use CordovaInterface.getThreadPool(). V/FA: Connecting to remote service D/FA: Connected to remote service V/FA: Processing queued up service tasks: 1 V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@48a0157 V/FA: Inactivity, disconnecting from the service

DiegoScirra commented 2 years ago

As it turns out this is a duplicate of #5211.

As I explain in that issue, unfortunately the problem seems to be out of our hands and the best I can do is work around the issue so the application won't freeze, but even if I do that ads will not work if the underlaying Google Ads SDK failed to initialize properly.