在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中。运行应用程序时找不到它们。就像丢失或错误引用的库一样。也许有一个额外的步骤让它们可见?
[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'.
答案 0 :(得分:2)
在您的Android Build下 - >高级选项卡,您是为armeabi建造还是为armeabi-v7a建造?看起来您将库放在armeabi文件夹中。