gpt4 book ai didi

android - Xamarin Android : Cannot embed jna-4. 2.0.jar 进入Android Binding项目

转载 作者:搜寻专家 更新时间:2023-11-01 09:34:21 24 4
gpt4 key购买 nike

我正在尝试将 native 项目中的一些 jar 嵌入到我的 Xamarin Android 应用程序中,但我遇到了两个独立的(但我怀疑是相关的)问题:

  1. 包中的文件之一是 jna-4.2.0.jar。当我尝试自行构建绑定(bind)项目时,出现此错误:

The type or namespace name 'ICallback' does not exist in the namespace 'Com.Sun.Jna' (are you missing an assembly reference?)

生成的代码如下:

    [Register ("getCallback", "(Ljava/lang/Class;Lcom/sun/jna/Pointer;)Lcom/sun/jna/Callback;", "")]
public static unsafe global::Com.Sun.Jna.ICallback GetCallback (global::Java.Lang.Class type, global::Com.Sun.Jna.Pointer p)
{
if (id_getCallback_Ljava_lang_Class_Lcom_sun_jna_Pointer_ == IntPtr.Zero)
id_getCallback_Ljava_lang_Class_Lcom_sun_jna_Pointer_ = JNIEnv.GetStaticMethodID (class_ref, "getCallback", "(Ljava/lang/Class;Lcom/sun/jna/Pointer;)Lcom/sun/jna/Callback;");
try {
JValue* __args = stackalloc JValue [2];
__args [0] = new JValue (type);
__args [1] = new JValue (p);
global::Com.Sun.Jna.ICallback __ret = global::Java.Lang.Object.GetObject<global::Com.Sun.Jna.ICallback> (JNIEnv.CallStaticObjectMethod (class_ref, id_getCallback_Ljava_lang_Class_Lcom_sun_jna_Pointer_, __args), JniHandleOwnership.TransferLocalRef);
return __ret;
} finally {
}
}

我还尝试从https://github.com/java-native-access/jna 下载最新版本jna-4.4.0.jar。 ,但这会产生相同的错误。

  1. 我正在使用的库生成此错误:

'Version' does not implement interface member 'IComparable.CompareTo(Object)'

我已尝试按照 Xamarin 文档并使用生成的 cs 文件中的注释来解决此问题,方法是将此行添加到 metadata.xml 文件在我的绑定(bind)项目中:

<attr path="/api/package[@name='com.innovatrics.iface']/class[@name='Version']/method[@name='compareTo' 
and count(parameter)=1
and parameter[1][@type='com.innovatrics.iface.Version']]"
name="managedType">Java.Lang.Object</attr>

但这似乎一点作用都没有。

最佳答案

在这种情况下,您是否尝试过更改类名?

尝试在 Metadata.xml 文件中添加以下内容(未经测试):

<attr path="/api/package[@name='com.sun.jna']/interface[@name='Callback']" name="name">ICallback</attr>

这会将接口(interface)名称从 Java 中的 Callback 更改为 C# 中的 ICallback

关于android - Xamarin Android : Cannot embed jna-4. 2.0.jar 进入Android Binding项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com