2015-04-04 19 views
1

UPDATE:感謝jgoldberger我已經解決了這個使用Xamarin:Java綁定項目 - 無法更改本地接口的知名度

<remove-node path="/api/package[@name='com.spotify.sdk.android.authentication']/interface[@name='AuthenticationClient.AuthenticationCompleteListener']" /> 

我想創建爲Android SDK的Spotify一個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> 
然而

試過,當建築我得到以下錯誤:

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

我能做些什麼?

謝謝你幫了
弗雷德

回答

3

如果是私有的內部Java庫,我猜你不應該需要從消費的庫項目的訪問。如果是這樣,你是否嘗試刪除Metadata.xml文件中的接口,如下所示:

< remove-node path =「/ api/package [@ name ='com.spotify.sdk.android.authentication' ] /類[@名= '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

+1

最後這本來是工作。謝謝你的回覆!在我的情況下,我不得不使用' '再次感謝。 – Fhl 2015-04-07 12:04:41

+0

是@Fhl ........在我的情況下,我也嘗試過同樣的事情,現在工作正常,謝謝 – GvSharma 2017-06-28 09:12:58