android - Xamarin java 绑定(bind)忽略支持 jar

标签 android jar xamarin

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

我下载了该项目并将其从 maven 迁移到 gradle,以将其构建为适合 Xamarin 使用的 AAR 文件。我创建了一个 java 绑定(bind)项目,将 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 取自未修改的 android sdk,位于 extras/android/support/v13/android-support-v13.jar。

非常欢迎任何帮助。

最佳答案

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

在我的示例中,我有 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# 绑定(bind)作为引用。

就我而言,我使用了 Xamarin.GooglePlayServices 包,它具有依赖项 Xamarin.Android.Support.v4 (与我的 jar 完全相同)。

就您而言,您只需将 Xamarin.Android.Support.v4 包添加到绑定(bind)项目中。

最终,您的项目结构中将会有这样的内容:

Sample structure for Bindings project with same problem

希望有帮助!

关于android - Xamarin java 绑定(bind)忽略支持 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630552/

相关文章:

android - 在 MediaPlayer App 中播放音乐的服务或 Activity

android - 不同应用程序之间的 SharedPreferances(或其他内存)?

java - 在 Java 应用程序中包含 GIT 安装

unit-testing - 无法将 ReactiveUI 添加到 NUnit 测试项目

xamarin - 在 webview xamarin 表单中单击输入和显示键盘时页面不滚动

android - 检测 Android 上是否安装了 Flash 并在 Activity 中嵌入 Flash 视频

android - 华为设备上的 FileProvider getUriForFile() 错误

java - org.jboss.deployers.spi.management.deploy.DeploymentManager 的位置;

Java Maven 将 Excel 文件打包到 Jar 中

xamarin - Objective Sharpie 有时会将 I 添加到 @protocols