有什么方法可以使用EmbeddedNativeLibrary吗?

时间:2015-06-08 02:51:07

标签: xamarin nativelibrary

在Xamarin Solution中,我有:

  • 项目1:Android应用程序项目(应用程序)。 我有一个旧的Android应用程序使用三个.so,构建为AndroidNativeLibrary。这很好用,.so被发现。我想从中创建一个库。出于这个原因,我做了一个新的Library项目。现在,在我的解决方案中,我有第二个项目:

  • 项目2:Library项目,.so内置为EmbeddedNativeLibrary。 这不起作用。 DLL不包含.so.so也会复制到引用它的Android应用程序项目中。 (我不知道在构建过程中将它们放在应用程序的/lib文件夹中的常用过程)所以.so库是无处可去的,Dalvik没有找到它。我知道如果我直接将它们放在应用程序项目中它会起作用,但这是一个难看的解决方案。

在我看来,EmbeddedNativeLibrary,从名称来看,应该对我的情况有所帮助。但它没有效果。

如何将.so文件嵌入.DLL Library中或自动复制到应用程序/lib目录中?

[编辑]

我之前应该验证过,但是这些库确实包含在APK中。运行应用程序时找不到它们。就像丢失或错误引用的库一样。也许有一个额外的步骤让它们可见?

They are there for the proper ABI

[Mono] DllImport attempting to load: 'libffmpeg.so'.

[Mono] DllImport error loading library '/storage/sdcard0/Android/data/com.pure.ffmpeg/
files/.__override__/libffmpeg.so': 'Cannot load library:
load_library[1093]: Library '/data/data/com.pure.ffmpeg/lib//storage/sdcard0/Android/
data/com.pure.ffmpeg/files/.__override__/libffmpeg.so' not found'.

[Mono] DllImport error loading library
 '/storage/sdcard0/Android/data/com.pure.ffmpeg/files/.__override__/libffmpeg.so': 
'Cannot load library: load_library[1093]: Library '/data/data/com.pure.ffmpeg/
lib//storage/sdcard0/Android/data/com.pure.ffmpeg/files/.__override__/libffmpeg.so'
 not found'.

[Mono] DllImport error loading library 'libffmpeg.so': 
'Cannot load library: 
load_library[1093]: Library '/data/data/com.pure.ffmpeg/lib/libffmpeg.so' not found'.

[Mono] DllImport error loading library 'libffmpeg.so': 'Cannot 
load library: load_library[1093]: Library '/data/data/com.pure.ffmpeg/lib/libffmpeg.so' not found'.

[Mono] DllImport error loading library 'libffmpeg.so': 'Cannot 
load library: load_library[1093]: Library '/data/data/com.pure.ffmpeg/lib/libffmpeg.so' not found'.

[Mono] DllImport unable to load library 'Cannot load library: load_library[1093]: 
Library '/data/data/com.pure.ffmpeg/lib/libffmpeg.so' not found'.

1 个答案:

答案 0 :(得分:2)

在您的Android Build下 - >高级选项卡,您是为armeabi建造还是为armeabi-v7a建造?看起来您将库放在armeabi文件夹中。