我试图将jar(zubhium sdkjar)文件绑定到我的mono droid项目。我遵循了他们在Xamarins网站上的指导,创建了一个新的绑定项目,我引用了我的MonoDroid项目。
我对程序包名称有一些问题。我得到以下错误:
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文件中,但这不起作用。
你们有什么建议吗?
当做
最佳答案
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并将其生成操作设置为AndroidJavaLibrary
。如果不这样做,则意味着
.jar
不会添加到javac
$CLASSPATH
中,从而在编译Android Callable Wrapper时导致javac
编译错误(如您所见),并且.jar
不会包含在最终的.apk
中。这两个都不好。这是因为当项目打包时,它会自动将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
是内部类型的acw。不能重命名此类型;它是一个不通过元数据控制的内部构造。