Noesis crashes when application targets Unity/UWP
Posted: 21 Oct 2022, 17:27
Hello,
If I create a very simple Noesis app (i.e. the Hello World example), I can build and deploy it to the iPad and it works like a charm.
But if I do the same for the Windows desktop UWP app, the app crashes on launch.
I'm using Unity 2020.3 / Noesis 3.1.2 / x64
No log on Unity but when i start the app in debug mode in VS I get this exception from this code:
Exception thrown at 0x00007FFA97FDC83D (Noesis.dll) in TestNoesis2019.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
// Native function invocation
#if FORCE_PINVOKE_INTERNAL || FORCE_PINVOKE_Noesis_INTERNAL
reinterpret_cast<PInvokeFunc>(Noesis_SetFontFallbacks)(____familyNames0_marshaled, ___count1);
#else
il2cppPInvokeFunc(____familyNames0_marshaled, ___count1);
#endif
// Marshaling cleanup of parameter '___familyNames0' native representation
if (____familyNames0_marshaled != NULL)
{
const il2cpp_array_size_t ____familyNames0_marshaled_CleanupLoopCount = (___familyNames0 != NULL) ? (___familyNames0)->max_length : 0;
for (int32_t i = 0; i < ARRAY_LENGTH_AS_INT32(____familyNames0_marshaled_CleanupLoopCount); i++)
{
il2cpp_codegen_marshal_free((____familyNames0_marshaled));
(____familyNames0_marshaled) = NULL;
}
il2cpp_codegen_marshal_free(____familyNames0_marshaled);
____familyNames0_marshaled = NULL;
}
Have a nice day :)
If I create a very simple Noesis app (i.e. the Hello World example), I can build and deploy it to the iPad and it works like a charm.
But if I do the same for the Windows desktop UWP app, the app crashes on launch.
I'm using Unity 2020.3 / Noesis 3.1.2 / x64
No log on Unity but when i start the app in debug mode in VS I get this exception from this code:
Exception thrown at 0x00007FFA97FDC83D (Noesis.dll) in TestNoesis2019.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
// Native function invocation
#if FORCE_PINVOKE_INTERNAL || FORCE_PINVOKE_Noesis_INTERNAL
reinterpret_cast<PInvokeFunc>(Noesis_SetFontFallbacks)(____familyNames0_marshaled, ___count1);
#else
il2cppPInvokeFunc(____familyNames0_marshaled, ___count1);
#endif
// Marshaling cleanup of parameter '___familyNames0' native representation
if (____familyNames0_marshaled != NULL)
{
const il2cpp_array_size_t ____familyNames0_marshaled_CleanupLoopCount = (___familyNames0 != NULL) ? (___familyNames0)->max_length : 0;
for (int32_t i = 0; i < ARRAY_LENGTH_AS_INT32(____familyNames0_marshaled_CleanupLoopCount); i++)
{
il2cpp_codegen_marshal_free((____familyNames0_marshaled));
(____familyNames0_marshaled) = NULL;
}
il2cpp_codegen_marshal_free(____familyNames0_marshaled);
____familyNames0_marshaled = NULL;
}
Have a nice day :)