1

我有一个 .so 文件,我在 java 代码中使用它,编译后在 Android 机器上使用,现在我被迫在 .NET c# 应用程序中使用 .so 文件中定义的一些功能。如何在 c# 程序中引用或使用 .so 文件?

4

2 回答 2

4

我不认为这是可能的。

.so 是一个共享对象,它是手机/模拟器的机器码(Android Native Interface)。我不太了解 C#,但我认为没有任何接口可以访问 .so 的成员。

除此之外,.so 是 linux 的共享对象格式,而 .NET 主要在 Windows 上运行。

此外,.so 很可能是为手机上的 ARM 处理器编译的,因此它需要一个模拟器才能在 Windows 上运行。

你看,这些技术之间存在着巨大的差距。

于 2012-10-16T15:04:55.600 回答
2

如果您想在 PC 上使用它,不,您不能直接使用该文件。您需要获取源代码并重新编译为 DLL,您可以通过 Platform Invoke(IIRC 名称)从 .NET 使用该 DLL。您所拥有的很可能是 ARM 代码,而您的 PC 需要 x86。

Monodroid 可能适用于 Android 设备,因为它很可能只是编译为 Android 代码。我从来没有使用过它,所以不要引用我的话。

于 2012-10-17T02:41:17.577 回答