【发布时间】: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