android - Xamarin - 使用 android 原生库
问题描述
我有使用第三方 .so 库的运行良好的 Android Studio java 应用程序,我需要将其中的一部分转移到 Xamarin Forms 项目中。
java应用程序中的配置如下:
public interface dataWork
{
int getType(byte[] bArr);
void initialize(Object obj);
}
然后:
final class dataWorkFinal implements dataWork
{
private final int parserType;
private native int getType(int i, byte[] bArr);
public native void initialize(Object obj);
static
{
System.loadLibrary("workLibrary");
}
dataWorkFinal (int i) { this.parserType = i; }
public int getType(byte[] bArr) {
return getType(this.parserType, bArr);
}
}
然后在主要部分:
Context context = getApplicationContext();
dataWorkFinal work = new dataWorkFinal (12345);
work.initialize(context);
byte[] bDat1 = { 0x01, 0x02, 0x03};
int res = work.getType(bDat1);
在 Xamarin 表单 (Android) 中:
使用 DLLimport 加载 .so 库工作正常。在库中查找函数 - 好的。错误 - 调用函数时 - 致命信号 11 (SIGSEGV),代码 1
当前的 Xamarin:
[DllImport("workLibrary", EntryPoint = "getType")]
public static extern int getType(int i, int j);
....
byte[] bDat1 = new byte[] { 0x01, 0x02, 0x03};
int ms = getType( 12345, bDat1);
需要一些帮助/想法如何解决它?
解决方案
推荐阅读
- windows - 安装本机反应的问题
- perl - 自动生存即使作为左值也不起作用
- sql - 如何优化此 SQL Delete 语句以获得更快的速度
- wordpress - Wordpress 自定义查询仅显示两个帖子
- mysql - 大型 MyISAM 表中的 MySQL 基本更新查询太慢
- json - 带有 OData 的 PowerShell ConvertFrom-Json 返回空集合
- c# - 在 RabbitMq .net 客户端中手动确认 IModel 线程安全吗?
- python - 熊猫读取excel文件并填充缺失值
- c# - UPDATE 语句与 Visual Studio 2019 的 FOREIGN KEY 约束冲突
- javascript - 从另一个输入值自动填充输入