[Mono-dev] Using .so file in Android Library Project and then using it in an Android App

Jonathan Pryor jonpryor at vt.edu
Tue Nov 18 15:56:18 UTC 2014


On Nov 18, 2014, at 10:05 AM, Burhan Eyuboglu <burhaneyuboglu at gmail.com> wrote:
> While running my code on an Android Device, it gives that error:

This is better asked on forums.xamarin.com...

> [Mono] DllImport error loading library '/storage/emulated/0/Android/data/LibraryDenemesi.LibraryDenemesi/files/.__override__/libcylibusb.dll': 'Cannot load library: load_library(linker.cpp:746): library "/data/data/LibraryDenemesi.LibraryDenemesi/lib//storage/emulated/0/Android/data/LibraryDenemesi.LibraryDenemesi/files/.__override__/libcylibusb.dll" not found'.

Please see:

	http://developer.xamarin.com/guides/android/advanced_topics/MultiCore_devices_XamarinAndroid/#Android_Native_Library_Installation

There should also be a similar "DllImport error loading library" message regarding `libcylibusb.so`, which presumably also isn't found because it isn't present. (Or there's a linker error.)

Your .apk should contain the native libraries in `lib/ABI` directories, and Android will extract and install the "appropriate" library into your app's lib directory. Either your .apk doesn't contain libcylibusb.so, or it contains libcylibusb.so for the "wrong" ABI and it isn't being installed, or you're hitting an Android installation bug.

You need to `unzip -l` your .apk, ensure libcylibusb.so exists for the ABI that your target is running, and (preferably) have a copy of libcylibusb.so for each lib/ABI directory within the .apk.

 - Jon



More information about the Mono-devel-list mailing list