I am writing Rust code for architecture target armv7-linux-androideabi
.
The code is written in Dart/Flutter with one performance critical library written in Rust. I use dart:ffi
to call it.
In Android Studio It works fine in the Android emulator with target i686-linux-android
.
But when I test it on my android phone (using the armv7-linux-androideabi
target) it crashes at runtime with the error:
E/flutter ( 4722): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Invalid argument(s): Failed to load dynamic library (dlopen failed: cannot locate symbol "__gnu_Unwind_Find_exidx" referenced by "/data/app/com.example.androidtest-2/lib/arm/libcerberus.so"...)
I checked with nm libcerberus.so
and __gnu_Unwind_Find_exidx
is referenced but not defined.
Any way to force pulling in this function which seems to be specific to Arm. ?
Steve