【问题标题】:Any way to use EmbeddedNativeLibrary?有什么方法可以使用 EmbeddedNativeLibrary?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多