Reanimated 2 compatibility with SDK 44 - expo

SDK Version: Expo 44.0.6
Platforms(Android/iOS/web/all): Android / iOS
Tested versions of react-native-reanimated : 2.2.4, 2.3.1, 2.4.1, 2.5.0
I recently upgraded my expo bare native workflow app from SDK41 to 44 (following all blog guidelines) using expo upgrade.
I’m stuck with this error : App freezes on simulator or real device when remote debugger is active (Expo Modules, Apple Silicon M1) · Issue #14875 · expo/expo · GitHub
The crash on Android (with v2.3.1 compatible version given by expo) is :
A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x454c4b524f5777 in tid 30501 (create_react_co), pid 30355 (m.em.butterlink)
I’m using react native navigation v5, which requires reanimated to work.
If I understand well, “you can’t use remote debugging with 'turbomodules'”.
So first question, can I just have my code running in debug mode (updated without needing to rebuild with android studio) without remote debug ?
I tried to enable 'hermes' following Expo guidelines (in app.json) in my android project and to setup Flipper but crash is still there, how can I setup those two in a bare workflow project to solve this issue and be able to code in debug mode again ?
https://forums.expo.dev/t/reanimated-2-compatibility-with-sdk-44/62831

Related

Cannot access filesystem in CMake UPW Project

I built an application that uses OpenXR with DirectX to display a simple scene in VR. As I'm tasked with implementing this in an already existing project, it's built using CMake, which works perfectly fine with Visual Studio 2019.
The application can run without any issues on the Windows MR Portal, as well as on the Oculus Rift S with the Oculus OpenXR runtime.
Now the next step is to get it running on the hololens. As I need an UWP project to do this, I created a .sln for the application I want to run on the hololens with CMake as follows:
cmake -G "Visual Studio 16 2019" -A x64 ..\.. -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0
With this, I can open the project and compile it as UWP, works without any issues. Now, when I want to run the application to debug it, I get the following error:
Exception thrown at 0x00007FFD3CC83E49 in openxr_test_app.exe: Microsoft C++ exception: std::filesystem::filesystem_error at memory location 0x00000046791CCF50.
Error [GENERAL | | OpenXR-Loader] : Unknown failure: canonical: Access denied: "C:\WINDOWS\system32\MixedRealityRuntime.json"
After some googling, I found out that I might need to add the relevant capability to the Package.appxmanifest, so I added
<rescap:Capability Name="broadFileSystemAccess"/>
as well as
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
and
IgnorableNamespaces="uap mp rescap"
to my Package.appxmanifest and enabled filesystem access for my application in the windows settings panel.
However, I still get the error above, I also tried to access other files on my PC (as I thought maybe system32 is a bit more restricted), but with no success.
I'm especially confused, because the OpenXR sample app from Microsoft works without any issues, and they did not declare the broadFileSystemAccess capability.
Are there any other ways to allow file access, or am I just missing something that I need to enable?
So as a quick follow-up, if anyone runs into the same issue: The problem here was a bug in the OpenXR loader that was introduced in version 1.0.10 of OpenXR.
Updating to OpenXR 1.0.11 solved the issue of the loader not being able to access the MixedRealityRuntime.json file.

Qt MySQL driver on windows (appveyor) doesn't support transactions feature

Qt MySQL driver on windows (appveyor) doesn't support transactions feature; i.e.:
QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions); //returns false
QSqlDatabase::database().transaction(); //raises exception
The question is: What's wrong? / how to make it work?
The same code works perfectly on linux (ubuntu and arch), but fails on windows, appveyor CI in my case, for example: https://ci.appveyor.com/project/konserw/koferta/build/devel-ci-281
Environment:
Visual Studio 2017
MySQL 5.7
Qt 5.11 (mysql plugin prebuilt on image, probably from qt binary distribution)
Full list of sw: https://www.appveyor.com/docs/build-environment/#pre-installed-software (VS 2017 column)
Link to sources: https://github.com/konserw/koferta/tree/devel
EDIT:
I've worked around this issue by checking if driver is supporting transactions and if not skipping transactions in my code. I'll live with that since it was appveyor/mysql only issue, so only my tests will run without transactions.
For production environment i've copied over dll from mariadb c/c++ connector binaries for windows to my application binary dir and it worked fine with my (remote) linux/mariadb server.

IONIC 2, debuging ios application - emulate?target return 404

I tried to build ios version of my ionic application which I build using Visual Studio 2017, but it seems it never can "install" to the simulator. The simulator is launched on the mac computer, but the application is not running, even I cannot find the icon in the simulator.
I suspect that it because the wrong naming of the target device.
I notice there is /cordova/build/.../emulate?target=iPhone+5 404 line on the mac's terminal, while when I try to the list the available target, it should be target=iPhone-5.
I'm a newbie in ionic and I don't know if it is the cause of problem that make the application is not shown at the emulator.
If it is not the problem, is there anybody can help me to find out what is the cause so the application cannot be debugged (not shown in the emulator)?
If it is the cause of the problem, then how can I change the command send from visual studio to the mac computer?
Thanks in advance for the help.

Air Native Extensions: Released Air App w/Windows Native Extension works fine on develpment PC but not on other computers

I'm working on an AIR app that uses a Native Extension for windows that I developed for the same project. The app calls an ANE method called pingFunction and passes it a String containing the IP address where the pingFunction will perform, believe it or not, a ping test.
The application and it's ANE work great on Flash Builder and even after making it a release, they keep working like a charm on the development PC. The problem is that I've tried on two other computers and the application is throwing the following error:
ArgumentError: Error #3500: The extension context does not have a method with the name pingFunction.
at flash.external::ExtensionContext/_call()
at flash.external::ExtensionContext/call()
at com.mycompanyname.myappname::MyAppName/sendPing()[...
At the beggining I thought I had to do with the fact that I was using a DLL I compiled using the Debug configuration on Visual Studio instead of the Release configuration, because I read that sometimes the a debug-version of a DLL can use external DLLs. So, I changed it and rebuilt the whole library as a release build. Sadly for me, I'm still experiencing the same result.
Also, I tried changing the swf-version of both the AIR app and the ANE to the AIR SDK version I'm using (14.0), and got again the same error.
The development computer is running Windows 8.1 and the others, where the app is not working, Windows 7 and Windows 7 Service Pack 1.
Any ideas about why this is happening? Any questions or comments that might lead me to the right track will be deeply appreciated.
Error#3500 is coming because you don't have the required runtime installed on those machines, which is necessary to execute any c++ code .
On your development machine you have visual studio installed and hence you also have msvcr.
Solution of the problem is:
Install msvcr i.e. Microsoft Visual c++ redistribution - 2012 from here.
you need msvcr anywhere you want to run any VS compiled c++ code.

Way to debug mixed JNI code?

I've been looking around to find an easy way to debug my JNI code, you know, to be able to freely jump into native code and back into java code.
The solutions which I found were sort of out of date or got some restrictions. Some required specific ndk version, some required specific Eclipse version. Here my target is Android 1.6 & 2.2, I'm using Eclipse 3.6 Helios, and NDK r5b. Is there a general solution for this mixed debugging? Thx.
Citate from $NDK/docs/NDK-GDB.html:
IMPORTANT: Native debugging can only work if all these conditions are met:
1. Your application is built with the 'ndk-build' script:
Building with the legacy "make APP=<name>" method is not
supported by ndk-gdb.
2. Your application is debuggable:
In other words, your AndroidManifest.xml has an <application>
element that sets the android:debuggable attribute to "true"
3. You are running your application on Android 2.2 (or higher):
ndk-gdb will not work if you try to run your application on
previous versions of the system. That does not mean that your
application should target the Android 2.2. API level, just
that the debugging session should happen on a 2.2+ device or
emulator system image.
so, you can't use device with 1.6.
How to setup environment to debug jni code: i used this recipe, it works for me.