【问题标题】:Xamarin java binding ignores support jarXamarin java 绑定忽略支持 jar
【发布时间】:2014-10-27 03:23:43
【问题描述】:

我需要使用http://viewpagerindicator.com/ 在 Xamarin.Android 项目的操作栏下方添加静态选项卡。

我下载了项目并将其从 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。

欢迎任何帮助。

【问题讨论】:

  • 你的 aar 工作了吗?谢谢
  • 不。使用 SlidingTabPager.Net 结束

标签: android jar xamarin


【解决方案1】:

有一种解决方法可以使这些事情发挥作用。

在我的示例中,我有 2 个参考 jar(android-support-v4.jar 和 google-play-services.jar)。 因此,如果您只是使用 Build Action = ReferenceJar 添加这 2 个 jar,您将看到与您发布的相同的错误。

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# 端没有得到正确解析。要解决这个问题,您需要为这些 jar 添加已编译的 C# 绑定作为引用。

在我的例子中,我使用了 Xamarin.GooglePlayServices 包,它有一个依赖项 Xamarin.Android.Support.v4(就像我的 jars 一样)。

在您的情况下,您只需将Xamarin.Android.Support.v4 包添加到您的绑定项目中。

最后,您的项目结构中会出现这样的内容:

希望有帮助!

【讨论】:

    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2016-12-02
    • 2019-12-20
    相关资源
    最近更新 更多