有一些 .so 库和 java 代码将它们用于 android。
我在 android studio 中编译此 java 代码以获得 .aar 文件。我需要使用 Visual Studio 为 Xamarin.Android 的 C# 代码进行绑定(bind)。因此,虽然与 java 的绑定(bind)运行良好,但 java 代码会抛出异常:
java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader
通过查看完整的异常消息,我发现java代码找不到.so文件。在Android Studio项目中,.so库位于./lib/armeabi-v7a/,java代码运行良好。
所以,问题是:我应该将 .so 库放在 C# 绑定(bind)库中的哪里?一些内心的气味提示我应该把它放在某个地方——这就是图书馆的工作方式。
我尝试将 .so 库放在我的 .dll 目录中,也放在 ./lib/armeabi-v7a/的更深处,但实际上没有帮助 - 异常(exception)是相同的。我尝试将它们放在 .aar 文件所在的目录中,以及 ./lib/armeabi-v7a/中的更深目录中,但这有点萨满教。这也没有帮助。
最佳答案
问题出在我尝试检查程序工作的方式上。我的 Android 模拟器不支持armeabi-v7a。在我尝试更改模拟器设置后。它变得滞后而且非常慢。问题是在真实设备上测试应用程序。
关于java - 绑定(bind)到 c# 一些使用 .so 库的 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512271/