Xamarin:Java 绑定项目 - 无法更改本地界面的可见性

Xamarin: Java Binding Project - Unable to change visibility of local interface

更新:感谢 jgoldberger,我使用

解决了这个问题
  <remove-node path="/api/package[@name='com.spotify.sdk.android.authentication']/interface[@name='AuthenticationClient.AuthenticationCompleteListener']" />

我正在尝试为 Android Spotify SDK 创建一个 Java 绑定项目。 我已经使用 Metadata.xml 解决了大部分问题,但我无法解决最后一个问题。

SDK里面的classAuthenticationClient有一个私有接口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>

然而,我在构建时遇到以下错误:

error: AuthenticationCompleteListener is not public in AuthenticationClient; cannot be accessed from outside package.

我能做什么?

感谢您的帮助
弗雷德

如果它在 Java 库中是私有内部的,我想您应该不需要从使用该库的项目访问它。如果是这样,您是否尝试过删除 Metadata.xml 文件中的接口,例如:

<删除节点路径="/api/package[@name='com.spotify.sdk.android.authentication']/class[@name='AuthenticationClient.AuthenticationCompleteListener']" />

或(因为我不确定 java 库中的实际完全限定路径):

<删除节点路径="/api/package[@name='com.spotify.sdk.android.authentication']/class[@name='AuthenticationClient']/interface[@name='AuthenticationCompleteListener']" />

此外,有时反编译 Java 库并查看实际情况(路径方面)也很有帮助。在 Mac 上,我使用 JD-GUI,它运行良好。您可以在 JD-GUI 中打开 .jar 文件并查看库的整个布局。 http://mac.softpedia.com/get/Development/Java/JD-GUI.shtml