Closed santoshyadav140293 closed 1 year ago
Hi @santoshyadav140293, nice to meet you!
You need to bundle your library in the jniLibs folder in the generated flutter create --template=plugin_ffi --platform=android
. Place the .so
file in android/src/main/jniLibs/${target.architecture.cmakeAndroid}/
. See more info on https://developer.android.com/studio/projects/gradle-external-native-builds#jniLibs
Did you make a Flutter FFI plugin or a Dart standalone package? Dart standalone packages are currently not supported in Flutter applications. This is being tracked in:
Yes, I am using Flutter FFI plugin.
Kindly confirm weather we can build ".so" library from Android Studio only or we can use some other tools.
Is there any difference between Android ".so" library and Linux ".so" library ?
@dcharkes Please suggest.
Is there any difference between Android ".so" library and Linux ".so" library ?
Yes, they are very different.
They use a different ABI (application binary interface), they likely run on different hardware (your linux machine is like x64, while your Android device is likely arm64). You can see the ABI with for example: https://stackoverflow.com/questions/35424987/how-to-get-architecture-of-a-shared-object-file-so-file-using-gnu-c-program
They also use different libraries for system calls etc. So for Android you will always need to compile with the Android NDK.
Kindly confirm whether we can build ".so" library from Android Studio only or we can use some other tools.
You can build it from Android studio, or with any other compiler that can target the Android NDK.
Thank you for the response it helps me a lot.
Hi,
I am working on flutter application using andriod emulator.
I have used the following dart code to load ".so" and ".dll" file.
var libraryPath = path.join( Directory.current.path, 'primitives_library', 'TestLibrary.so');
final dylib = DynamicLibrary.open(libraryPath);
but when i build project it gives following error. DynamicLibrary.open error: Invalid argument(s): Failed to load dynamic library (126)
Please suggest any solution to load ".so" library using emulator.