【问题标题】:How to effectively add dependency .aar file in Xamarin project?如何在 Xamarin 项目中有效地添加依赖 .aar 文件?
【发布时间】:2020-05-02 11:39:36
【问题描述】:

我正在尝试使用 PayTM android 库创建一个 Xamarin 项目。由于 PayTM 没有直接的 Xamarin 绑定,我在 Xamarin Android Biding 库项目中添加了 appinvokesdk-1.2.aar。 appinvoke 的构建操作是“LibraryProjectZip”。现在,appinvoke 库还具有对 easypay-8.7.3-appinvoke.aar 的运行时依赖(我在检查 pom 文件中的 appinvoke.aar 文件后发现了这一点)。我已将easypay aar 文件的构建操作设置为“EmbdedJar”。我也尝试将其设置为“LibraryProjectZip”、“ReferenceJar”和“EmbeddedReferenceJar”。在运行时我收到错误为

Java.Lang.ClassNotFoundException:在路径上找不到类“easypay.listeners.WebClientListener”:DexPathList[[zip 文件“/data/app/com.edmatix.poc.paytmdemo1-WQf3uMctjbNHoAG_ZfsH3A==/base.apk "],nativeLibraryDirectories=[/data/app/com.edmatix.poc.paytmdemo1-WQ…}

这是我的环境详细信息

  • Visual Studio for Mac 8.5.4(内部版本 12)
  • AndroidX 程序集
  • Xamarin.Form 4.6.0.726
  • Android 最低 API 版本 22
  • Android 目标 API 28 (Android 9)

easypay.listeners.WebClientListener 类仅在运行时需要,编译时不需要。

能否请您帮忙说明如何正确嵌入依赖库?

谢谢

【问题讨论】:

  • 您是否已经启用了多 dex 支持?
  • 我不知道如何启用它。你能指导我吗?
  • 取决于你是使用Mac还是Windows i.stack.imgur.com/QqaV3.png但是打开android项目设置并启用multi dex。
  • 嗨 @Saamer,我的应用程序使用的最低 API 版本为 21。所以你仍然认为我需要多 dex 吗?
  • @Saamer,我在看这个链接devblogs.microsoft.com/xamarin/…。首先要清楚。我没有收到任何编译时错误。同样基于我分享的链接,Xamarin 团队似乎启用了一些支持,因此我们不需要 multidex。虽然我仍然会启用 mulitdex 并检查一次

标签: android xamarin xamarin.android aar paytm


【解决方案1】:

这就是我为解决运行时丢失 .aar 文件的问题而采取的措施。我将第二个 .aar 文件 (easypay-8.7.3-appinvoke.aar) 添加到另一个 Xamarin 绑定项目中(如here 所示)并将编译类型设置为 LibraryProjectZip。这解决了我在运行时找不到类的问题。

谢谢

【讨论】:

  • appinvokesdk-1.2.aar 的嗨绑定已找到,但我在新项目上遇到了 easypay-8.7.3-appinvoke.aar 绑定的问题。您是否对 Metadata.xml 进行了任何更改?
  • 不,不是。实际上对我来说,问题是依赖关系太多了。所以我通过直接 api 调用转移到 PayTM 集成。在以下链接中查看基于 API 的应用调用流程developer.paytm.com/docs/all-in-one-sdk
【解决方案2】:

请尝试在您的 Xamarin Android 项目中安装 Xamarin.Kotlin.StdLib。安装 Kotlin 包对我有用,因为我使用的是包含 Kotlin 代码的 .aar 文件。

Install-Package Xamarin.Kotlin.StdLib -Version 1.3.50.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2016-04-18
    • 2018-05-27
    • 2017-07-09
    • 2015-10-23
    • 2018-11-27
    相关资源
    最近更新 更多