我正在使用创建一个Java/Android绑定库。AAR文件。编译C#绑定库项目后,它会生成以下错误:
Type 'PushMessageHandler' already defines a member called 'A' with the same parameter types
问题是一个类包含这两个方法,它们的名称相同,但返回类型不同:
// Metadata.xml XPath method reference: path="/api/package[@name='com.xiaomi.mipush.sdk']/class[@name='PushMessageHandler']/method[@name='a' and count(parameter)=0]"
[Register ("a", "()V", "")]
protected static unsafe void A ()
{
const string __id = "a.()V";
try {
_members.StaticMethods.InvokeVoidMethod (__id, null);
} finally {
}
}
// Metadata.xml XPath method reference: path="/api/package[@name='com.xiaomi.mipush.sdk']/class[@name='PushMessageHandler']/method[@name='a' and count(parameter)=0]"
[Register ("a", "()Z", "GetAHandler")]
protected override unsafe bool A ()
{
const string __id = "a.()Z";
try {
var __rm = _members.InstanceMethods.InvokeVirtualBooleanMethod (__id, this, null);
return __rm;
} finally {
}
}
但正如您所看到的,XPath方法引用对于两种方法都是相同的:
path="/api/package[@name='com.xiaomi.mipush.sdk']/class[@name='PushMessageHandler']/method[@name='a' and count(parameter)=0]"
因此,当我尝试更改中某个方法的方法名时
Metadata.xml
,它更改了两个方法的名称,但相同的错误仍然存在。
有没有办法只更改其中一个方法的名称
?(特别是void返回类型的方法)。有没有办法将返回类型包括在XPath方法引用中?