3

在 XamarinSolution中,我有:

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

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

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

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

[编辑]

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

他们在那里为适当的 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'.
4

1 回答 1

3

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

于 2015-06-08T03:45:35.517 回答