godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.71k stars 21.12k forks source link

Mono exports without C# script (e.g. only GDScript) crash on launch on Android #32980

Closed BenMcLean closed 4 years ago

BenMcLean commented 5 years ago

Godot version: Godot 3.2 Mono Alpha 2

OS/device including version: Building for Oculus Quest, using Windows 10.

Issue description: In Godot 3.2 Alpha 2, I can:

  1. Build regular android apps.
  2. Build and run the Oculus Mobile Plugin demo without issues.

In Godot 3.2 Mono Alpha 2, I can:

  1. Build regular android apps with C#
  2. Build the Oculus Mobile Plugin demo.

However, when I use the Oculus Quest to run the Oculus Mobile Plugin demo that was built on the Mono version, it crashes on launch.

Here's the crash log:

10-11 21:55:38.300 22625 22640 I godot   : Godot Engine v3.2.alpha2.mono.official - https://godotengine.org
10-11 21:55:38.324 22625 22640 I godot   : OpenGL ES 2.0 Renderer: Adreno (TM) 540
10-11 21:55:38.360 22625 22640 I godot   :
10-11 21:55:39.210 22625 22640 V GodotOVRMobile: Creating OVR Mobile session.
10-11 21:55:39.236 22625 22640 E godot   : **ERROR**: Mono: Core API hash mismatch.
10-11 21:55:39.236 22625 22640 E godot   :    At: modules/mono/mono_gd/gd_mono.cpp:436:_initialize_and_check_api_hashes() - Mono: Core API hash mismatch.
10-11 21:55:39.237 22625 22640 I godot   : Mono: Logfile is: /data/data/com.godot.game/files/mono/mono_logs/2019_10_11 21.55.39 (22625).txt

and here's the Godot log:

10-11 21:55:39.678 22706 22706 F DEBUG   :     x0   00000000000001c0  x1   0000007f73e142a4  x2   0000000000000000  x3   0000000000000047
10-11 21:55:39.678 22706 22706 F DEBUG   :     x4   00000000ffffffff  x5   0000007f97080400  x6   0000000080808080  x7   0000007f8b716ac8
10-11 21:55:39.678 22706 22706 F DEBUG   :     x8   00000000000001c0  x9   0000000000000018  x10  0000007f8e7c7450  x11  0000000000000003
10-11 21:55:39.678 22706 22706 F DEBUG   :     x12  0000007f8b716498  x13  0000007f9707fc80  x14  89aa04541b37693d  x15  ffffffffffffffff
10-11 21:55:39.678 22706 22706 F DEBUG   :     x16  0000007f7a255fc8  x17  0000007f970387bc  x18  0000000000000084  x19  00000000000001c0
10-11 21:55:39.678 22706 22706 F DEBUG   :     x20  0000000000000000  x21  0000007f73e0feb0  x22  0000000000000000  x23  0000000000000000
10-11 21:55:39.678 22706 22706 F DEBUG   :     x24  0000007f7413cf20  x25  0000000000000000  x26  0000007f8e7c74e8  x27  0000007f8e7c5a90
10-11 21:55:39.678 22706 22706 F DEBUG   :     x28  0000007f8e7c74e8  x29  0000007f8e7c5a00  x30  0000007f7a0414cc
10-11 21:55:39.678 22706 22706 F DEBUG   :     sp   0000007f8e7c5920  pc   0000007f970387c0  pstate 0000000000000000
10-11 21:55:39.680 22706 22706 F DEBUG   :
10-11 21:55:39.680 22706 22706 F DEBUG   : backtrace:
10-11 21:55:39.680 22706 22706 F DEBUG   :     #00 pc 00000000000767c0  /system/lib64/libc.so (pthread_mutex_lock+4)
10-11 21:55:39.680 22706 22706 F DEBUG   :     #01 pc 00000000001324c8  /data/app/com.godot.game-1/lib/arm64/libmonosgen-2.0.so

I had originally reported this issue here.

Steps to reproduce: Build the Godot Oculus Mobile demo app in Godot Mono, then try to run it on the Oculus Quest.

Minimal reproduction project: The demo that comes with the Godot Oculus Mobile plugin.

I decided the other day to switch to Unity but I might cancel that decision if everything just worked. However, I seem to be literally the only developer in the entire world who is interested in getting C# on the Oculus Quest with Godot, and I think I'd be doing better switching to something (anything) that more people are using. Thought it'd still be good to report this.

akien-mga commented 5 years ago

I literally just got an Oculus Quest, so I might look into it. Also CC @m4gr3d.

Chances are that the bug is not specific to the Oculus plugin, but more a rough edge of the brand new support for Mono on Android.

BenMcLean commented 5 years ago

OK, really appreciate any help

akien-mga commented 5 years ago

I could confirm that the issue is not specific to the Oculus plugin, but to any project using both Mono and GDNative. I have yet to check if GDNative is even part of the equation or if it's just any Mono project that crashes on Android right now (but those used to work in my tests).

Here's a GDNative-using project with no C# code, from the GDNative C docs: c_example.zip https://docs.godotengine.org/en/latest/tutorials/plugins/gdnative/gdnative-c-example.html

For the reference, I built the Android lib manually with:

$ $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang -std=c11 -fPIC -c -I../../godot_headers simple.c -o simple.os
$ $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang -shared simple.os -o ../bin/libsimple_aarch64.so

I confirmed that without Mono, the GDNative project works fine on Android.

Then if I export the same project using a Mono build for the same commit, I get the same issue as @BenMcLean:

10-23 12:23:44.560  6060  6098 E godot   : **ERROR**: Mono: Core API hash mismatch.
10-23 12:23:44.560  6060  6098 E godot   :    At: modules/mono/mono_gd/gd_mono.cpp:436:_initialize_and_check_api_hashes() - Mono: Core API hash mismatch.
10-23 12:23:44.560  6060  6098 W otengine.nonam: Accessing hidden method Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread; (light greylist, JNI)
10-23 12:23:44.560  6060  6098 W otengine.nonam: Accessing hidden method Landroid/app/ActivityThread;->getApplication()Landroid/app/Application; (light greylist, JNI)
10-23 12:23:44.561  6060  6098 I godot   : Mono: Logfile is: /data/data/org.godotengine.noname/files/mono/mono_logs/2019_10_23 12.23.44 (6060).txt
10-23 12:23:44.563  6060  6098 E godot   : **ERROR**: Mono: FATAL ERROR, ABORTING! Logfile: '/data/data/org.godotengine.noname/files/mono/mono_logs/2019_10_23 12.23.44 (6060).txt'.
10-23 12:23:44.563  6060  6098 E godot   :    At: modules/mono/mono_gd/gd_mono_log.cpp:75:mono_log_callback() - Mono: FATAL ERROR, ABORTING! Logfile: '/data/data/org.godotengine.noname/files/mono/mono_logs/2019_10_23 12.23.44 (6060).txt'.
10-23 12:23:44.563  6060  6098 F libc    : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 6098 (GLThread 12488), pid 6060 (otengine.noname)
10-23 12:23:44.649  5660  5719 I SystemUpdate-DataParser: [InvalidPackageList] JSON : invalidSystemPackageList list is null
10-23 12:23:44.653  6111  6111 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
10-23 12:23:44.654  1110  1110 I /system/bin/tombstoned: received crash request for pid 6098
10-23 12:23:44.654  6111  6111 I crash_dump64: performing dump of process 6060 (target tid = 6098)
10-23 12:23:44.659  6111  6111 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-23 12:23:44.659  6111  6111 F DEBUG   : Build fingerprint: 'Xiaomi/beryllium/beryllium:9/PKQ1.180729.001/V10.3.8.0.PEJMIXM:user/release-keys'
10-23 12:23:44.659  6111  6111 F DEBUG   : Revision: '0'
10-23 12:23:44.659  6111  6111 F DEBUG   : ABI: 'arm64'
10-23 12:23:44.659  6111  6111 F DEBUG   : pid: 6060, tid: 6098, name: GLThread 12488  >>> org.godotengine.noname <<<
10-23 12:23:44.659  6111  6111 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
10-23 12:23:44.659  6111  6111 F DEBUG   :     x0  0000000000000000  x1  00000000000017d2  x2  0000000000000006  x3  0000000000000008
10-23 12:23:44.659  6111  6111 F DEBUG   :     x4  0000000000800000  x5  0000000000800000  x6  0000000000800000  x7  0000800000000000
10-23 12:23:44.659  6111  6111 F DEBUG   :     x8  0000000000000083  x9  ee32e19c88968189  x10 0000000000000000  x11 fffffffc7ffffbdf
10-23 12:23:44.659  6111  6111 F DEBUG   :     x12 0000000000000001  x13 0000000000000010  x14 ffffffffffffffff  x15 0000d8b6ec29479a
10-23 12:23:44.659  6111  6111 F DEBUG   :     x16 00000072ac6b12c8  x17 00000072ac5ef544  x18 0000000000000001  x19 00000000000017ac
10-23 12:23:44.659  6111  6111 F DEBUG   :     x20 00000000000017d2  x21 000000720e056588  x22 000000720966b5e0  x23 0000000000000000
10-23 12:23:44.659  6111  6111 F DEBUG   :     x24 0000000000000000  x25 0000000000000000  x26 0000007219dfe4a0  x27 0000000000000000
10-23 12:23:44.659  6111  6111 F DEBUG   :     x28 000000720e053cb0  x29 000000720e0533c0
10-23 12:23:44.659  6111  6111 F DEBUG   :     sp  000000720e053380  lr  00000072ac5e3f0c  pc  00000072ac5e3f34
10-23 12:23:44.660  6111  6111 F DEBUG   : 
10-23 12:23:44.660  6111  6111 F DEBUG   : backtrace:
10-23 12:23:44.660  6111  6111 F DEBUG   :     #00 pc 0000000000021f34  /system/lib64/libc.so (abort+116)
10-23 12:23:44.660  6111  6111 F DEBUG   :     #01 pc 0000000000213848  /data/app/org.godotengine.noname--UQcPEdtlSuhLFPnO9Tcjg==/lib/arm64/libgodot_android.so
10-23 12:23:44.660  6111  6111 F DEBUG   :     #02 pc 0000000000296990  /data/app/org.godotengine.noname--UQcPEdtlSuhLFPnO9Tcjg==/lib/arm64/libmonosgen-2.0.so

The referenced log file contains:

$ cat 2019_10_23\ 12.23.44\ \(6060\).txt                                                                                                          
/home/akien/Projects/godot/mono/src/mono/mono/eglib/ghashtable.c:326: assertion 'hash != NULL' failed (in domain , critical)
Thread 0x720e0564f0 may have been prematurely finalized (in domain , warning)
* Assertion at /home/akien/Projects/godot/mono/src/mono/mono/utils/mono-threads.c:634, condition `info' not met
 (in domain , error)

Edit: To clarify, the above happens even though no C# code is used and no C# solution has been created. The same crash still happens even if a C# solution is generated (and I made sure to clean/refresh the res://.mono folder).

akien-mga commented 5 years ago

I could confirm that the issue is not specific to the Oculus plugin, but to any project using both Mono and GDNative. I have yet to check if GDNative is even part of the equation or if it's just any Mono project that crashes on Android right now (but those used to work in my tests).

Well now I checked, and even a basic project without GDNative crashes on Android when using the Mono export, so it seems outright broken (on 8c3a5057)... So this might no be GDNative-related either, just a regression on Mono/Android.

Above test project stripped of GDNative code: c_example_test.zip

akien-mga commented 5 years ago

I seem to get things working if I build a solution and add a C# script to a node (even without any custom code), and compile it.

It seems like Mono on Android can't handle exports that don't actually use C#.

@BenMcLean Did you have any C# code in your test export?

akien-mga commented 5 years ago

@BenMcLean I tried the Oculus mobile demo with a proper C# script added to the Table node, and it worked just fine.

BenMcLean commented 5 years ago

I tried the Oculus mobile demo with a proper C# script added to the Table node, and it worked just fine.

I thought I had tried that and got the same crash, but I can try it again!

BenMcLean commented 5 years ago

Now I can't even build at all due to this happening.

akien-mga commented 5 years ago

The issue you referenced is a bug in user script (unhandled exception).

BenMcLean commented 5 years ago

Oops, I linked the wrong issue. That isn't what happened. Will try it again this weekend. Sorry about that, please ignore.

BenMcLean commented 5 years ago

akien-mga, would you be open to trying a screen share for a few minutes where I can show exactly what I'm doing and you can spot if I'm going wrong?

It's for a free, open source and non-commercial Quest game (Wolfenstein 3-D for the Quest!)

BenMcLean commented 5 years ago

OK here's what actually happens when I try to build the demo with only one template C# script added to the table:

Godot Engine v3.2.alpha2.mono.official - https://godotengine.org
OpenGL ES 2.0 Renderer: GeForce GTX 1070/PCIe/SSE2

**ERROR**: No library set for this platform
   At: modules/gdnative/gdnative.cpp:290:initialize() - No library set for this platform
Mono: Logfile is: C:\Users\mclea\AppData\Roaming/Godot/mono/mono_logs/2019_10_25 21.45.39 (15808).txt
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
Adding permission android.permission.INTERNET
ADDING: AndroidManifest.xml
ADDING: classes.dex
ADDING: lib/arm64-v8a/libMonoPosixHelper.so
ADDING: lib/arm64-v8a/libMonoSupportW.so
ADDING: lib/arm64-v8a/libc++_shared.so
ADDING: lib/arm64-v8a/libgodot_android.so
ADDING: lib/arm64-v8a/libmono-btls-shared.so
ADDING: lib/arm64-v8a/libmono-ee-interp.so
ADDING: lib/arm64-v8a/libmono-profiler-aot.so
ADDING: lib/arm64-v8a/libmono-profiler-coverage.so
ADDING: lib/arm64-v8a/libmono-profiler-log.so
ADDING: lib/arm64-v8a/libmonosgen-2.0.so
ADDING: res/drawable-hdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-mdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-nodpi-v4/icon.png
ADDING: res/drawable-v21/notification_action_background.xml
ADDING: res/drawable-xhdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-xxhdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable/notification_bg.xml
ADDING: res/drawable/notification_bg_low.xml
ADDING: res/drawable/notification_icon_background.xml
ADDING: res/drawable/notification_tile_bg.xml
ADDING: res/layout-v16/notification_template_custom_big.xml
ADDING: res/layout-v21/notification_action.xml
ADDING: res/layout-v21/notification_action_tombstone.xml
ADDING: res/layout-v21/notification_template_custom_big.xml
ADDING: res/layout-v21/notification_template_icon_group.xml
ADDING: res/layout/downloading_expansion.xml
ADDING: res/layout/notification_action.xml
ADDING: res/layout/notification_action_tombstone.xml
ADDING: res/layout/notification_template_icon_group.xml
ADDING: res/layout/notification_template_part_chronometer.xml
ADDING: res/layout/notification_template_part_time.xml
ADDING: res/layout/status_bar_ongoing_event_progress_bar.xml
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: no space left
ADDING: resources.arsc
**ERROR**: Condition ' !loaded ' is true. returned: __null
   At: modules/mono/mono_gd/gd_mono_assembly.cpp:380:get_class() - Condition ' !loaded ' is true. returned: __null
**ERROR**: Mono Cache: Member GDMonoUtils::mono_cache.class_Vector2 is null.
   At: modules/mono/mono_gd/gd_mono_utils.cpp:226:update_godot_api_cache() - Condition ' !GDMonoUtils::mono_cache.class_Vector2 ' is true.
**ERROR**: Condition ' !loaded ' is true. returned: __null
   At: modules/mono/mono_gd/gd_mono_assembly.cpp:380:get_class() - Condition ' !loaded ' is true. returned: __null
**ERROR**: Mono Cache: Member GDMonoUtils::mono_cache.class_Vector2 is null.
   At: modules/mono/mono_gd/gd_mono_utils.cpp:226:update_godot_api_cache() - Condition ' !GDMonoUtils::mono_cache.class_Vector2 ' is true.
**ERROR**: The loaded assembly 'GodotSharp' is in sync, but the cache update failed.
   At: modules/mono/mono_gd/gd_mono.cpp:888:_load_api_assemblies() - The loaded assembly 'GodotSharp' is in sync, but the cache update failed.
**ERROR**: FATAL: Method/Function Failed.
   At: modules/mono/mono_gd/gd_mono.cpp:897:_load_api_assemblies() - FATAL: Method/Function Failed.

The editor abruptly closes partway through the build.

akien-mga commented 5 years ago

@BenMcLean Can you share the project files?

BenMcLean commented 5 years ago

Can you share the project files?

I could, but all I did was to get this crash was clone godot_oculus_mobile, build with this script, open the demo project in Godot Mono 3.2 Alpha 2, right click on the table, add a script called Table.cs (did not edit the script at all, just left the default template alone) and clicked the Android button with my Oculus Quest plugged into my Windows 10 PC.

BenMcLean commented 5 years ago

I even deleted everything and re-cloned just to make sure it wasn't anything I'd screwed up about the project.

akien-mga commented 5 years ago

open the demo project in Godot Mono 3.2 Alpha 2, right click on the table, add a script called Table.cs (did not edit the script at all, just left the default template alone) and clicked the Android button with my Oculus Quest plugged into my Windows 10 PC.

Then you probably missed the step of actually compiling the C# code before exporting, which would happen by pressing "Build" or trying to run the project.

BenMcLean commented 5 years ago

Then you probably missed the step of actually compiling the C# code before exporting, which would happen by pressing "Build" or trying to run the project.

Oh, OK. I thought the Android button would entail building, but I switched over to Visual Studio and hit build over there first.

When I try to run in desktop mode, I get this:

Godot Engine v3.2.alpha2.mono.official - https://godotengine.org
OpenGL ES 3.0 Renderer: GeForce GTX 1070/PCIe/SSE2

Mono: Logfile is: C:\Users\mclea\AppData\Roaming/Godot/mono/mono_logs/2019_10_26 11.15.56 (11420).txt
Editing project: C:/GodotVR/godot_oculus_mobile/demo (C:::GodotVR::godot_oculus_mobile::demo)
Godot Engine v3.2.alpha2.mono.official - https://godotengine.org
OpenGL ES 2.0 Renderer: GeForce GTX 1070/PCIe/SSE2

ERROR: initialize: No library set for this platform
   At: modules/gdnative/gdnative.cpp:290
Mono: Logfile is: C:\Users\mclea\AppData\Roaming/Godot/mono/mono_logs/2019_10_26 11.15.59 (2988).txt
erasing C:\Users\mclea\AppData\Roaming/Godot/projects/demo-5295a99fbb89bb2ee727e37f6f084f6b/filesystem_update4
ERROR:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480
ERROR:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480
ERROR:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480
* daemon not running; starting now at tcp:5037
Running: C:\GodotVR\Godot_v3.2-alpha2_mono_win64\Godot_v3.2-alpha2_mono_win64.exe --path C:/GodotVR/godot_oculus_mobile/demo --remote-debug 127.0.0.1:6007 --allow_focus_steal_pid 2988 --position 560,290
Godot Engine v3.2.alpha2.mono.official - https://godotengine.org
ERROR: get_class: Condition ' !loaded ' is true. returned: __null
   At: modules/mono/mono_gd/gd_mono_assembly.cpp:380
ERROR: Mono Cache: Member GDMonoUtils::mono_cache.class_Vector2 is null.
   At: modules/mono/mono_gd/gd_mono_utils.cpp:226
OpenGL ES 2.0 Renderer: GeForce GTX 1070/PCIe/SSE2

ERROR: initialize: No library set for this platform
   At: modules/gdnative/gdnative.cpp:290
Mono: Logfile is: C:\Users\mclea\AppData\Roaming/Godot/mono/mono_logs/2019_10_26 11.16.04 (19616).txt
ERROR: get_class: Condition ' !loaded ' is true. returned: __null
   At: modules/mono/mono_gd/gd_mono_assembly.cpp:380
ERROR: Mono Cache: Member GDMonoUtils::mono_cache.class_Vector2 is null.
   At: modules/mono/mono_gd/gd_mono_utils.cpp:226
ERROR: _load_api_assemblies: The loaded assembly 'GodotSharp' is in sync, but the cache update failed.
   At: modules/mono/mono_gd/gd_mono.cpp:888
ERROR: _load_api_assemblies: FATAL: Method/Function Failed.
   At: modules/mono/mono_gd/gd_mono.cpp:897

=================================================================
        Native Crash Reporting
=================================================================
Got a SIGILL while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
        Managed Stacktrace:
=================================================================
=================================================================
* daemon started successfully
ERROR:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480
ERROR:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480
ERROR: _get_socket_error: Socket error: 10054
   At: drivers/unix/net_socket_posix.cpp:198

The editor abruptly closes in that case, but the log window stays open so I can copy that text.

And when I try to build for Android, the editor abruptly quits leaving adb.exe running. I have to force close adb.exe in Task Manager to be able to look at the log.txt and it says:

Godot Engine v3.2.alpha2.official - https://godotengine.org
OpenGL ES 2.0 Renderer: GeForce GTX 1070/PCIe/SSE2

**ERROR**: No library set for this platform
   At: modules/gdnative/gdnative.cpp:290:initialize() - No library set for this platform
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
**ERROR**:  does not have a library for the current platform.
   At: modules/gdnative/nativescript/nativescript.cpp:1480:init_library() - Condition ' lib_path.length() == 0 ' is true.
**ERROR**: Socket error: 10054
   At: drivers/unix/net_socket_posix.cpp:198:_get_socket_error() - Socket error: 10054
**ERROR**: Condition ' !process_map->has(p_pid) ' is true. returned: FAILED
   At: platform/windows/os_windows.cpp:2635:kill() - Condition ' !process_map->has(p_pid) ' is true. returned: FAILED
BenMcLean commented 5 years ago

Godot 3.2 Mono Alpha 3 fixes this problem.

nathanfranke commented 4 years ago

I think I am still getting this on Beta 2. The error shows no matter what, but if I have no C# script it crashes the entire engine. Can someone confirm this? Using a Google Pixel 3a on Android 10

11-24 13:19:11.896  7796  7842 I godot   : Godot Engine v3.2.beta2.mono.official - https://godotengine.org
11-24 13:19:11.903  7796  7842 I godot   : OpenGL ES 3.0 Renderer: Adreno (TM) 615
11-24 13:19:11.920  7796  7842 I godot   :  
11-24 13:19:12.104  7796  7842 E godot   : **ERROR**: Mono: Core API hash mismatch.
11-24 13:19:12.104  7796  7842 E godot   :    At: modules/mono/mono_gd/gd_mono.cpp:482:_initialize_and_check_api_hashes() - Mono: Core API hash mismatch.
11-24 13:19:12.106  7796  7842 I godot   : Mono: Logfile is: /data/data/org.godotengine.test/files/mono/mono_logs/2019_11_24 13.19.12 (7796).txt
akien-mga commented 4 years ago

Yes, this doesn't seem to be fixed yet.

to-jajav33 commented 4 years ago

I seem to be getting the same error on Ubuntu 16.04 after running the export command for HTML5 and Linux

Godot Version 3.2.2-stable (regular and headless) (linux)

OS Version Ubuntu 16.04

Steps To Reproduce:

Download the and install WebRTC Signaling Example I modified the code in demo/main.gd with the following:

       # if HTML5 dont show server stuff, if TEST environment detected, auto run the server.
    if OS.get_name() == "HTML5":
        $VBoxContainer/Signaling.hide()
    elif(OS.get_environment("ENV") == "TEST"):
        print("running server")
        $VBoxContainer/Signaling.hide();
        $Server.listen(int($VBoxContainer/Signaling/Port.value))

Add ENV=TEST to envrionment variables Download WebRTC zip file and extract into godot.project root folder Download and install export templates into ~/.godot/share/templates/3.2.2-stable Setup export_presets.cfg to defaults Run the following command in Ubuntu 16.04 godot --path ./src/ --export 'Linux/X11' ./.dist/server/server_x11.64 --quit

The following message appears.

Godot Engine v3.2.2.stable.official - https://godotengine.org

ERROR: initialize: No library set for this platform
   At: modules/gdnative/gdnative.cpp:290.
savepack: begin: Packing steps: 102
    savepack: step 2: Storing File: res://client/multiplayer_client.gdc
    savepack: step 12: Storing File: res://client/ws_webrtc_client.gdc
    savepack: step 22: Storing File: res://demo/client_ui.gdc
    savepack: step 32: Storing File: res://demo/client_ui.tscn
    savepack: step 42: Storing File: res://demo/main.gdc
    savepack: step 52: Storing File: res://demo/main.tscn
    savepack: step 62: Storing File: res://game/Game.gdc
    savepack: step 72: Storing File: res://game/Game.tscn
    savepack: step 82: Storing File: res://server/ws_webrtc_server.gdc
    savepack: step 92: Storing File: res://webrtc/webrtc.tres
    savepack: step 102: Storing File: res://client/multiplayer_client.gd.remap
    savepack: step 102: Storing File: res://client/ws_webrtc_client.gd.remap
    savepack: step 102: Storing File: res://demo/client_ui.gd.remap
    savepack: step 102: Storing File: res://demo/main.gd.remap
    savepack: step 102: Storing File: res://game/Game.gd.remap
    savepack: step 102: Storing File: res://server/ws_webrtc_server.gd.remap
    savepack: step 102: Storing File: res://project.binary
savepack: end

Also happens with HTML5 export.

I added it here because the error is in the same line of code, but let me know if it needs a new issue to be opened.

Thank you in advance for any help.