首页 > 解决方案 > Xamarin Android 绑定

问题描述

我正在尝试为此处提供的 android sdk 创建绑定https://www.nmi.com/sdks-and-apis#CDNA。绑定项目构建,我可以将它添加到我的 xamarin android 项目中,但是一旦包含它,我就会收到以下错误。

错误:com.creditcall.chipdnamobile 包不存在 com.creditcall.chipdnamobile.IApplicationSelectionListener ChipDnaSample.Android C:\Users\mikee\Documents\GitHub\ChipDna\ChipDnaSample\ChipDnaSample.Android\obj\Debug\90\android\src\单声道\com\creditcall\chipdnamobile\IApplicationSelectionListenerImplementor.java 8

错误:包 com.creditcall.chipdnamobile 不存在 private native void n_onAvailablePinPads (com.creditcall.chipdnamobile.Parameters p0);ChipDnaSample.Android C:\Users\mikee\Documents\GitHub\ChipDna\ChipDnaSample\ChipDnaSample.Android\obj\Debug\90\android\src\mono\com\creditcall\chipdnamobile\IAvailablePinPadsListenerImplementor.java 33

仅引用不同的类就有 64 个相同性质的错误。我把所有的代码都放在了 GitHub

如果我进入 Obj/Release/generated/src 我可以找到 IApplicationSelectionListener 所以它被创建了一些绑定但它实际上并没有工作。有人能指出我需要做些什么来纠正这些错误吗?

谢谢

标签: androidxamarinxamarin.androidxamarin-binding

解决方案


您必须更改 jar 的构建类型。java compile 找不到它,因为它在编译时不存在。

改变

  • InputJar用于EmbeddedInputJarChipDnaMobile.jar
  • ReferenceJar对于EmbeddedReferenceJarCardEaseXMLClient.jar

有关更多信息,请参阅:https ://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-a-jar

重要的句子:

通常,您使用 EmbeddedJar 构建操作,以便将 .JAR 自动打包到绑定库中。这是最简单的选项 – .JAR 中的 Java 字节码被转换为 Dex 字节码并嵌入(连同托管可调用包装器)到您的 APK 中。如果您想将 .JAR 与绑定库分开,您可以使用 InputJar 选项;但是,您必须确保 .JAR 文件在运行您的应用程序的设备上可用。


推荐阅读