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

【讨论】:

最后证明是可行的。感谢您的回复!就我而言,我不得不使用 &lt;remove-node path="/api/package[@name='com.spotify.sdk.android.authentication']/interface[@name='AuthenticationClient.AuthenticationCompleteListener']" /&gt; 再次感谢。 是的@Fhl........在我的情况下,我也尝试了同样的事情,现在一切正常,谢谢 大家好!在我的情况下,库本身不需要它,但它是该库中另一个类的公共方法之一的输出类型。所以,看来我不能省略它。

以上是关于Xamarin:Java 绑定项目 - 无法更改本地界面的可见性的主要内容,如果未能解决你的问题,请参考以下文章

更改 Xamarin.Forms 项目代码后,我无法在 Iphone 上进行调试

Xamarin Forms + Mvvmcross绑定命令不起作用

Xamarin.Forms Android 绑定库错误

Xamarin 形成 MVVM Stacklayout 内容绑定

Xamarin iOS - XAML IsVisible 绑定在 ItemsSource 更改时不会更新

Xamarin 绑定到列表视图项模板中的另一个元素