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
更新:感谢 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