Xamarin:Java 绑定项目 - 无法更改本地界面的可见性
Posted
技术标签:
【中文标题】Xamarin:Java 绑定项目 - 无法更改本地界面的可见性【英文标题】:Xamarin: Java Binding Project - Unable to change visibility of local interface 【发布时间】:2015-06-09 16:15:48 【问题描述】:更新:感谢 jgoldberger 我已经解决了这个问题
<remove-node path="/api/package[@name='com.spotify.sdk.android.authentication']/interface[@name='AuthenticationClient.AuthenticationCompleteListener']" />
我正在尝试为 Android Spotify SDK 创建一个 Java 绑定项目。 我已经使用 Metadata.xml 解决了大多数问题,但我无法解决最后一个问题。
在 AuthenticationClient 类里面的 SDK 中有一个私有接口 AuthenticationCompleteListener。
我尝试过使用
<attr path="/api/package[@name='com.spotify.sdk.android.authentication']/class[@name='AuthenticationClient.AuthenticationCompleteListener']" name="visibility">public</attr>
以及各种变体,包括
<attr path="/api/package[@name='com.spotify.sdk.android.authentication']/class[@name='AuthenticationClient']/interface[@name='AuthenticationCompleteListener']" name="visibility">public</attr>
但是,我在构建时收到以下错误:
错误:AuthenticationCompleteListener 在 身份验证客户端;无法从外部包访问。
我能做什么?
感谢您的帮助 弗雷德
【问题讨论】:
【参考方案1】:如果这是 Java 库中的私有内部,我猜您应该不需要从使用该库的项目中访问它。如果是这样,您是否尝试过删除 Metadata.xml 文件中的接口,例如:
或者(因为我不确定java库中实际的完全限定路径):
有时反编译 Java 库并查看实际发生的情况也很有帮助。在 Mac 上,我使用 JD-GUI,它运行良好。您可以在 JD-GUI 中打开 .jar 文件并查看库的整个布局。 http://mac.softpedia.com/get/Development/Java/JD-GUI.shtml
【讨论】:
最后证明是可行的。感谢您的回复!就我而言,我不得不使用<remove-node path="/api/package[@name='com.spotify.sdk.android.authentication']/interface[@name='AuthenticationClient.AuthenticationCompleteListener']" />
再次感谢。
是的@Fhl........在我的情况下,我也尝试了同样的事情,现在一切正常,谢谢
大家好!在我的情况下,库本身不需要它,但它是该库中另一个类的公共方法之一的输出类型。所以,看来我不能省略它。以上是关于Xamarin:Java 绑定项目 - 无法更改本地界面的可见性的主要内容,如果未能解决你的问题,请参考以下文章
更改 Xamarin.Forms 项目代码后,我无法在 Iphone 上进行调试
Xamarin Forms + Mvvmcross绑定命令不起作用
Xamarin 形成 MVVM Stacklayout 内容绑定