Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin结合文库';覆盖层';:成员名称不能与其封闭类型相同_C#_Android_Xamarin_Dll_Binding - Fatal编程技术网

C# Xamarin结合文库';覆盖层';:成员名称不能与其封闭类型相同

C# Xamarin结合文库';覆盖层';:成员名称不能与其封闭类型相同,c#,android,xamarin,dll,binding,C#,Android,Xamarin,Dll,Binding,我需要重命名字段“覆盖”,但不删除。 我正在尝试将本机jar库链接到xamarin dll。 我正在创建新的绑定库项目,并在其中包含jar文件。 但当我尝试构建解决方案时,系统输出窗口出现错误 “覆盖”:成员名称不能与其封闭类型相同 我尝试用以下方式配置元数据文件 <metadata> <remove-node path="/api/package[@name='Com.Cdcom.Naviapps.Progorod']/class[@name='Overlay']/metho

我需要重命名字段“覆盖”,但不删除。 我正在尝试将本机jar库链接到xamarin dll。 我正在创建新的绑定库项目,并在其中包含jar文件。 但当我尝试构建解决方案时,系统输出窗口出现错误

“覆盖”:成员名称不能与其封闭类型相同

我尝试用以下方式配置元数据文件

<metadata>
<remove-node path="/api/package[@name='Com.Cdcom.Naviapps.Progorod']/class[@name='Overlay']/method[@name='Overlay']" />
</metadata>


或者我正在尝试改变方法

<enum-method-mappings>
  <mapping jni-class="/api/package[@name='com.cdcom.naviapps.progorod']/class[@name='Overlay']">
<method jni-name="Overlay" parameter="return" clr-enum-type="Android.OS.Overlay" />
  </mapping>
</enum-method-mappings>

但我有另一个错误

“generator.exe”已退出,代码为-532462766

您可以从下面的第一个错误中看到该类

// Metadata.xml XPath class reference: path="/api/package[@name='com.cdcom.naviapps.progorod']/class[@name='Overlay']"
    [global::Android.Runtime.Register ("com/cdcom/naviapps/progorod/Overlay", DoNotGenerateAcw=true)]
    public partial class Overlay : global::Java.Lang.Object {
        //region "Event implementation for Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListener"
        public event EventHandler<global::Com.Cdcom.Naviapps.Progorod.Overlay.OverlayEventArgs> Overlay {
            add {
                global::Java.Interop.EventHelper.AddEventHandler<global::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListener, global::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListenerImplementor>(
                        ref weak_implementor___SetOnOverlayListener,
                        __CreateIOnOverlayListenerImplementor,
                        __v => OnOverlayListener = __v,
                        __h => __h.Handler += value);
            }
            remove {
                global::Java.Interop.EventHelper.RemoveEventHandler<global::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListener, global::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListenerImplementor>(
                        ref weak_implementor___SetOnOverlayListener,
                        global::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListenerImplementor.__IsEmpty,
                        __v => OnOverlayListener = null,
                        __h => __h.Handler -= value);
            }
        }
        //endregion
    }
//Metadata.xml XPath类引用:path=“/api/package[@name='com.cdcom.naviapps.progorod']/class[@name='Overlay']”
[全局::Android.Runtime.Register(“com/cdcom/naviapps/progorod/Overlay”,DoNotGenerateAcw=true)]
公共部分类覆盖:global::Java.Lang.Object{
//区域“Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListener的事件实现”
公共事件事件处理程序覆盖{
加{
全局::Java.Interop.EventHelper.AddEventHandler(
ref弱\u实现者\uuuuu设置覆盖侦听器,
__CreationOverlayListenerImplementor,
__v=>OnOverlayListener=\uu v,
__h=>uu h.Handler+=值);
}
除去{
全局::Java.Interop.EventHelper.RemoveEventHandler(
ref弱\u实现者\uuuuu设置覆盖侦听器,
全局::Com.Cdcom.Naviapps.Progorod.Overlay.IOnOverlayListenerImplementor.\uu IsEmpty,
__v=>OnOverlayListener=null,
__h=>\uu h.Handler-=值);
}
}
//端区
}
原始java代码

public class Overlay
{
  public List<OverlayItem> getItems()
  {
    return this.mOverlayItems;
  }
    public OnOverlayListener getOnOverlayListener()
  {
    return this.mOverlayListener;
  }

  public void populate()
  {
    double[] latlon = new double[this.mOverlayItems.size() * 2];
    int d = 0;
    for (OverlayItem oi : this.mOverlayItems)
    {
      latlon[(d++)] = oi.getGeoPoint().getLatitude();
      latlon[(d++)] = oi.getGeoPoint().getLongitude();
    }
    Native.populateOverlay(this.mId, latlon);
  }
  public void setBitmap(Bitmap bitmap, float xOffset, float yOffset, boolean isPlain, int sizeInMeters)
  {
    int width = 0;
    int height = 0;
    int[] pixels = null;
    if (bitmap != null)
    {
      width = bitmap.getWidth();
      height = bitmap.getHeight();
      pixels = new int[width * height];
      bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
    }
    Native.setOverlayBitmap(this.mId, width, height, pixels, xOffset, yOffset, isPlain, sizeInMeters);
  }
  public void setOnOverlayListener(OnOverlayListener listener)
  {
    this.mOverlayListener = listener;
  }

  public static int SPECIAL_OVERLAY_START_ROUTE = -1;
  public static int SPECIAL_OVERLAY_FINISH_ROUTE = -2;
  public static int SPECIAL_OVERLAY_ROUTE_SPRITE = -3;
  public static int SPECIAL_OVERLAY_GEOBLOG_SPRITE = -4;
  private static int SPECIAL_OVERLAYS_COUNT = 4;

  public static Overlay specialOverlay(int id)
  {
    if (mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)] == null)
    {
      mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)] = new Overlay();
      mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)].mId = id;
    }
    return mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)];
  }

  protected int getId()
  {
    return this.mId;
  }

  protected int mId = mNextId++;
  private static int mNextId = 1;
  private List<OverlayItem> mOverlayItems = new ArrayList();
  private OnOverlayListener mOverlayListener;
  private static Overlay[] mSpecialOverlays = new Overlay[SPECIAL_OVERLAYS_COUNT];

  public static abstract interface OnOverlayListener
  {
    public abstract void onOverlayEvent(Overlay paramOverlay, OverlayItem paramOverlayItem);
  }
}
公共类覆盖
{
公共列表getItems()
{
返回此.mOverlayItems;
}
公共OnOverlayListener getOnOverlayListener()
{
返回this.moverlaystener;
}
公共空白填充()
{
double[]latlon=new double[this.mOverlayItems.size()*2];
int d=0;
对于(覆盖项oi:this.mOverlayItems)
{
latlon[(d++)]=oi.getGeoPoint().getLatitude();
latlon[(d++)]=oi.getGeoPoint().getLongitude();
}
Native.populateOverlay(this.mId,latlon);
}
public void setBitmap(位图位图、浮点xOffset、浮点yOffset、布尔isPlain、int sizeInMeters)
{
整数宽度=0;
整数高度=0;
int[]像素=空;
if(位图!=null)
{
宽度=位图.getWidth();
高度=位图.getHeight();
像素=新整数[宽度*高度];
getPixels(像素,0,宽度,0,0,宽度,高度);
}
Native.setOverlayBitmap(this.mId、宽度、高度、像素、xOffset、yOffset、isPlain、sizeInMeters);
}
公共void设置OnOverlayListener(OnOverlayListener侦听器)
{
this.moverlaystener=listener;
}
公共静态int特殊覆盖\u开始\u路由=-1;
公共静态int特殊覆盖图完成路径=-2;
公共静态int特殊覆盖路径SPRITE=-3;
公共静态int-SPECIAL\u-OVERLAY\u-GEOBLOG\u-SPRITE=-4;
专用静态int专用覆盖计数=4;
公共静态覆盖专用LoverLay(int id)
{
如果(MSSpecialOverlays[(id+特殊覆盖\U计数)]==null)
{
msSpecialOverlays[(id+特殊覆盖层计数)]=新覆盖层();
MSSpecialOverlays[(id+特殊覆盖层计数)]。mId=id;
}
返回MSSpecialOverlays[(id+特殊重叠计数)];
}
受保护的int getId()
{
把这个还给我;
}
受保护的int mId=mNextId++;
私有静态int mNextId=1;
private List mOverlayItems=new ArrayList();
私有OnOverlayListener-mOverlayListener;
私有静态覆盖[]MSSpecialOverlays=新覆盖[特殊覆盖计数];
OverlayListener上的公共静态抽象接口
{
OverlayeEvent上的公共摘要无效(OverlayeParamOverlaye,OverlayeItem ParamOverlayeItem);
}
}

能否请您将原始Java代码发布在
com.cdcom.naviapps.progorod.Overlay
中?谢谢,我添加了Java源代码。
public class Overlay
{
  public List<OverlayItem> getItems()
  {
    return this.mOverlayItems;
  }
    public OnOverlayListener getOnOverlayListener()
  {
    return this.mOverlayListener;
  }

  public void populate()
  {
    double[] latlon = new double[this.mOverlayItems.size() * 2];
    int d = 0;
    for (OverlayItem oi : this.mOverlayItems)
    {
      latlon[(d++)] = oi.getGeoPoint().getLatitude();
      latlon[(d++)] = oi.getGeoPoint().getLongitude();
    }
    Native.populateOverlay(this.mId, latlon);
  }
  public void setBitmap(Bitmap bitmap, float xOffset, float yOffset, boolean isPlain, int sizeInMeters)
  {
    int width = 0;
    int height = 0;
    int[] pixels = null;
    if (bitmap != null)
    {
      width = bitmap.getWidth();
      height = bitmap.getHeight();
      pixels = new int[width * height];
      bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
    }
    Native.setOverlayBitmap(this.mId, width, height, pixels, xOffset, yOffset, isPlain, sizeInMeters);
  }
  public void setOnOverlayListener(OnOverlayListener listener)
  {
    this.mOverlayListener = listener;
  }

  public static int SPECIAL_OVERLAY_START_ROUTE = -1;
  public static int SPECIAL_OVERLAY_FINISH_ROUTE = -2;
  public static int SPECIAL_OVERLAY_ROUTE_SPRITE = -3;
  public static int SPECIAL_OVERLAY_GEOBLOG_SPRITE = -4;
  private static int SPECIAL_OVERLAYS_COUNT = 4;

  public static Overlay specialOverlay(int id)
  {
    if (mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)] == null)
    {
      mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)] = new Overlay();
      mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)].mId = id;
    }
    return mSpecialOverlays[(id + SPECIAL_OVERLAYS_COUNT)];
  }

  protected int getId()
  {
    return this.mId;
  }

  protected int mId = mNextId++;
  private static int mNextId = 1;
  private List<OverlayItem> mOverlayItems = new ArrayList();
  private OnOverlayListener mOverlayListener;
  private static Overlay[] mSpecialOverlays = new Overlay[SPECIAL_OVERLAYS_COUNT];

  public static abstract interface OnOverlayListener
  {
    public abstract void onOverlayEvent(Overlay paramOverlay, OverlayItem paramOverlayItem);
  }
}