2014-09-02 60 views
2

我需要使用http://viewpagerindicator.com/在Xamarin.Android項目的操作欄下添加靜態選項卡。Xamarin java綁定忽略支持jar

我下載了項目並將其從maven遷移到gradle,將其構建到適合Xamarin使用的AAR文件中。我創建了一個Java綁定項目,增加了AAR文件作爲LibraryProjectZip,並添加了V13支持jar作爲ReferenceJar但似乎它正在某處失去了就證明了這些xbuild日誌的方式:

BINDINGSGENERATOR: warning BG8C00: For type Com.Viewpagerindicator.IPageIndicator, base interface android.support.v4.view.ViewPager.OnPageChangeListener does not exist. 
BINDINGSGENERATOR: warning BG8800: Unknown parameter type android.support.v4.view.ViewPager.OnPageChangeListener in method SetOnPageChangeListener in managed type Com.Viewpagerindicator.IPageIndicator 
BINDINGSGENERATOR: warning BG8800: Unknown parameter type android.support.v4.view.ViewPager in method SetViewPager in managed type Com.Viewpagerindicator.IPageIndicator 

的警告鏈持續了很長時間,結束了一個嚴重受限的端口 的過程,因爲缺失的類型使得取決於它們的方法消失。

如果我刪除支持jar,由於缺少名爲jar2xml的實用程序的類,構建失敗,導致我相信它僅用於編譯/映射過程的一部分。

支持jar是從extras/android/support/v13/android-support-v13.jar中的未修改的android sdk中提取的。

任何幫助是最受歡迎的。

+0

你有沒有工作?謝謝 – 2015-02-23 12:21:59

+0

沒有。使用SlidingTabPager.Net創傷 – Machinarius 2015-02-28 17:18:50

回答

2

有一個解決方法,使這些工作。

在我的例子中,我有2個參考瓶(android-support-v4.jar和google-play-services.jar)。 所以,如果你只是用Build Action = ReferenceJar添加這2個罐子,你會看到與你發佈的相同的錯誤。

BINDINGSGENERATOR: warning BG8800: Unknown parameter type com.google.android.gms.maps.model.Marker in managed type Com.Google.Maps.Android.MarkerManager. 

儘管Marker和MarkerManager類是在jar中定義的,但它們在C#端沒有正確解析。要解決這個問題,只需要將這些罐子的已編譯C#綁定添加爲引用即可。

在我的情況下,我用Xamarin.GooglePlayServices包有依賴Xamarin.Android.Support.v4(正如我的罐子)。

就你而言,你只需要添加Xamarin.Android.Support.v4包到你的綁定項目。

最後,你將有這樣的事情在你的項目結構:

Sample structure for Bindings project with same problem

希望幫助!