【发布时间】:2015-08-22 10:01:32
【问题描述】:
在 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'.
【问题讨论】:
-
在您的 Android 构建 -> 高级选项卡下,您是为 armeabi 构建还是为 armeabi-v7a 构建?看起来您将库放在 armeabi 文件夹中。
-
这就是我现在正在调查的内容。在应用程序中使用它时它可以工作,但我觉得嵌入它时我必须在两个 arm abi 文件夹中复制。
-
哦,是的!您可以将其标记为答案。路径嗅探仅在嵌入时检查当前架构的 abi 文件夹。所以我也将它复制粘贴到 armeabi-v7a 中。
标签: xamarin android-native-library