我试图将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文件中但不起作用。
你们有没有吸烟?
此致
答案 0 :(得分:9)
package com.zubhium.interfaces does not exist
当您bind a .jar
library和reference 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。
您无法重命名此类型;它是一个不通过元数据控制的内部结构。