Monodroid问题与jar绑定zubhium sdk

时间:2012-06-06 09:06:25

标签: android binding jar xamarin.android

我试图将jar(zubhium sdk jar)文件绑定到我的mono droid项目。我在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文件中但不起作用。

你们有没有吸烟?

此致

1 个答案:

答案 0 :(得分:9)

package com.zubhium.interfaces does not exist

当您bind a .jar libraryreference the binding project from another project时,您需要 add the .jar to your Application project并将构建操作设置为{{1} }。

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

  

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

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

.apk

[global::Android.Runtime.Register ("mono/com/zubhium/interfaces/ZubhiumListenerImplementor")] internal sealed class ZubhiumListenerImplementor : Java.Lang.Object, IZubhiumListener { // ... } 是内部mono.com.zubhium.interfaces.ZubhiumListenerImplementor类型的ACW。

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