2

我正在尝试将 jar(zubhium sdk jar)文件绑定到我的单声道机器人项目。我按照他们在 xamarins 网站上的指南创建了一个新的绑定项目,我引用了我的 mono droid 项目。我在包名称方面遇到了一些问题。我收到以下错误:

Error   3    package com.zubhium.interfaces does not exist
        com.zubhium.interfaces.ZubhiumListener
    C:\Users\jbp\Desktop\ny\CmsApp.Droid\obj\Debug\android\src\mono\com\zubhium\interfaces\ZubhiumListenerImplementor.java  8   25  CmsApp.Droid



 from the genrated source:
package mono.com.zubhium.interfaces;        
public class ZubhiumListenerImplementor
            extends java.lang.Object
            implements
                mono.android.IGCUserPeer,
                com.zubhium.interfaces.ZubhiumListener

那是因为当项目被打包时,它会自动将 mono(.com.zubhium....) 添加到包名中。我找不到如何删除这个单声道,或者我是否可以设置一个规则来添加这个部分。

我试图放入 <attr path="/api/package[@name='com.zubhium.interfaces']" name="managedName">mono.com.zubhium.interfaces</attr> xmldata.xml 文件,但没有奏效。

大家有什么建议吗?

问候

4

1 回答 1

9
package com.zubhium.interfaces does not exist

当您绑定一个.jar从另一个项目引用该绑定项目时,您还需要添加 .jar您的应用程序项目并将其构建操作设置为AndroidJavaLibrary.

不这样做意味着.jar不会被添加到 中javac $CLASSPATH,导致javac编译Android Callable Wrapper时出现编译错误(如您所见),并且.jar不会包含在您的最终.apk. 这两个都是Bad™。

那是因为当项目被打包时,它会自动将 mono(.com.zubhium....) 添加到包名中。

那是针对“实施者”类型的;你可以忽略它。它被用作事件实现的一部分。如果查看生成的 C# 代码,应该有:

[global::Android.Runtime.Register ("mono/com/zubhium/interfaces/ZubhiumListenerImplementor")]
internal sealed class ZubhiumListenerImplementor : Java.Lang.Object, IZubhiumListener {
    // ...
}

mono.com.zubhium.interfaces.ZubhiumListenerImplementor是内部ZubhiumListenerImplementor类型的ACW。

您不能重命名此类型;它是一个不受元数据控制的内部结构。

于 2012-06-06T12:27:16.447 回答