我为人行横道项目创建了一个绑定项目。它创建了无法构建的ACW代码
Steam Directory.Initialize().Wait();
这是我收到的构建错误。
/Users/xxxxx/Integration/Mobile/MethodCRM/Droid/obj/Debug/android/src/mono/org/xwalk/core/internal/XWalkSettingsInternal_ZoomSupportChangeListenerImplementor.java(48,48):错误:错误: ZoomSupportChangeListener在XWalkSettingsInternal中不公开;无法从外部包裹访问 org.xwalk.core.internal.XWalkSettingsInternal.ZoomSupportChangeListener (MethodCRM.Droid)
似乎编译器抱怨org.xwalk.core.internal.XWalkSettingsInternal.ZoomSupportChangeListener是私有接口,但XWalkSettingsInternal_ZoomSupportChangeListenerImplementor是一个公共类。如何解决此错误?
更新:
我已尝试在Metadata.xml中删除package mono.org.xwalk.core.internal;
public class XWalkSettingsInternal_ZoomSupportChangeListenerImplementor
extends java.lang.Object
implements
mono.android.IGCUserPeer,
org.xwalk.core.internal.XWalkSettingsInternal.ZoomSupportChangeListener
{
static final String __md_methods;
static {
__md_methods =
"n_onGestureZoomSupportChanged:(ZZ)V:GetOnGestureZoomSupportChanged_ZZHandler:Org.Xwalk.Core.Internal.XWalkSettingsInternal/IZoomSupportChangeListenerInvoker, MethodCRM.Crosswalk\n" +
"";
mono.android.Runtime.register ("Org.Xwalk.Core.Internal.XWalkSettingsInternal+IZoomSupportChangeListenerImplementor, MethodCRM.Crosswalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", XWalkSettingsInternal_ZoomSupportChangeListenerImplementor.class, __md_methods);
}
public XWalkSettingsInternal_ZoomSupportChangeListenerImplementor () throws java.lang.Throwable
{
super ();
if (getClass () == XWalkSettingsInternal_ZoomSupportChangeListenerImplementor.class)
mono.android.TypeManager.Activate ("Org.Xwalk.Core.Internal.XWalkSettingsInternal+IZoomSupportChangeListenerImplementor, MethodCRM.Crosswalk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] { });
}
public void onGestureZoomSupportChanged (boolean p0, boolean p1)
{
n_onGestureZoomSupportChanged (p0, p1);
}
private native void n_onGestureZoomSupportChanged (boolean p0, boolean p1);
java.util.ArrayList refList;
public void monodroidAddReference (java.lang.Object obj)
{
if (refList == null)
refList = new java.util.ArrayList ();
refList.add (obj);
}
public void monodroidClearReferences ()
{
if (refList != null)
refList.clear ();
}
}
和XWalkSettingsInternal
但未解决此问题。
XWalkSettingsInternal.ZoomSupportChangeListener
答案 0 :(得分:0)
我在这个GitHub项目https://github.com/philieu/XamarinFormsXWalkViewTest中尝试过CrossWalk包装器并且它有效,所以也许你可以看一下,看看你在做什么不同?
更新:我查看了CrossWalk源代码,但我没有看到XWalkSettingsInternal
被其他类公开公开的任何地方,所以我只是完全删除该节点。
答案 1 :(得分:0)
请注意,当您查看Crosswalk的源代码并查看包xxInternal.java
中的一些名为org.xwalk.core.internal
的类时,这些类不是外部公开的接口。
当您构建Crosswalk的源代码时,会有一个脚本自动将org.xwalk.core.internal.xxInternal.java
转换为org.xwalk.core.xx.java
,这是开发人员的最终界面。虽然这对文件之间存在一对一的对应关系,但它们并不完全相同。只有@XWalkAPI
中xxInternal.java
标记的方法才会保留在xx.java
中。
您可以通过官方API docs或反编译xwalk_core_library.jar
来查看最终界面,public class OrderAndInventoryViewModel
{
public Order OrderInfo { get; set; }
public IEnumberable<Inventories> InventoryInfo { get; set; }
}
可以在您正在使用的AAR文件中找到。