我开始为其中一个Java SDK创建绑定库并设法成功映射大部分代码,但是我遇到了一个特殊问题,这个问题在我打开这个帖子之前花了3天多时间。
问题是我想为Kontakt.io创建一个绑定库android SDK为此我创建的项目添加了两个jar文件(core和android SDK都是他们的SDK部分)并为InputJar设置构建操作为所有成员创建了映射和接口,但现在我有一个问题,我在Java代码重载,但生成器无法为方法生成适当的类型,导致生成重复的代码生成和项目不编译。
这是我的Metadata.xml
<attr path="/api/package[@name='com.kontakt.sdk.core.interfaces.http']/interface[@name='ActionsApiAccessor']/method[@name='createAction' and count(parameter)=2 and parameter[1][@type='com.kontakt.sdk.core.interfaces.model.IBrowserAction'] and parameter[2][@type='java.lang.String']]" name="managedName">CreateAction</attr>
<attr path="/api/package[@name='com.kontakt.sdk.core.interfaces.http']/interface[@name='ActionsApiAccessor']/method[@name='createAction' and count(parameter)=2 and parameter[1][@type='com.kontakt.sdk.core.interfaces.model.IContentAction'] and parameter[2][@type='java.lang.String']]" name="managedName">CreateAction</attr>
这就是在c#代码上生成的内容。
// Metadata.xml XPath method reference: path="/api/package[@name='com.kontakt.sdk.core.interfaces.http']/interface[@name='ActionsApiAccessor']/method[@name='createAction' and count(parameter)=2 and parameter[1][@type='com.kontakt.sdk.core.interfaces.model.IBrowserAction'] and parameter[2][@type='java.lang.String']]"
[Register ("createAction", "(Lcom/kontakt/sdk/core/interfaces/model/IBrowserAction;Ljava/lang/String;)Lcom/kontakt/sdk/core/http/HttpResult;", "GetCreateAction_Lcom_kontakt_sdk_core_interfaces_model_IBrowserAction_Ljava_lang_String_Handler:Kontaktio.Core.Interfaces.IActionsApiAccessorInvoker, Kontakt.io.Droid")]
global::Kontaktio.Core.Http.HttpResult CreateAction (global::Java.Lang.Object p0, string p1);
// Metadata.xml XPath method reference: path="/api/package[@name='com.kontakt.sdk.core.interfaces.http']/interface[@name='ActionsApiAccessor']/method[@name='createAction' and count(parameter)=2 and parameter[1][@type='com.kontakt.sdk.core.interfaces.model.IContentAction'] and parameter[2][@type='java.lang.String']]"
[Register ("createAction", "(Lcom/kontakt/sdk/core/interfaces/model/IContentAction;Ljava/lang/String;)Lcom/kontakt/sdk/core/http/HttpResult;", "GetCreateAction_Lcom_kontakt_sdk_core_interfaces_model_IContentAction_Ljava_lang_String_Handler:Kontaktio.Core.Interfaces.IActionsApiAccessorInvoker, Kontakt.io.Droid")]
global::Kontaktio.Core.Http.HttpResult CreateAction (global::Java.Lang.Object p0, string p1);
任何人都可以帮我解决这个问题吗?