我为.jar创建了一个绑定,它在测试分支中工作正常,但是当将这个.jar绑定移动到我们的生产分支时,会抛出以下错误。
Java.Lang.ClassNotFoundException:未找到类“com.site24x7.android.apm.Apm” 在路径上:DexPathList [[zip文件“/data/app/com.mycomany.myappname-1.apk”], nativeLibraryDirectories = [/数据/ APP-LIB / com.mycompany.myappname-1, / vendor / lib,/ system / lib]]
我找到了
java.lang.ClassNotFoundException: Didn't find class on path: dexpathlist
但我没有在Visual Studio或Xamarin Studio中看到任何地方选择Java Build Path并按照这些说明进行操作。
答案 0 :(得分:2)
您需要确保Embed
绑定Jar,以便它嵌入到.apk中。您可以在我们的故障排除页面上找到类似的错误:
java.lang.NoClassDefFoundError is thrown in the packaging step.
可能的原因:
此错误的最可能原因是需要将强制Java库添加到应用程序项目(.csproj)。 .JAR文件不会自动解析。并不总是针对目标设备或模拟器中不存在的用户程序集生成Java库绑定(例如Google Maps maps.jar)。这不是Android库项目支持的情况,因为库.JAR嵌入在库dll中。例如:https://bugzilla.xamarin.com/show_bug.cgi?id=4288
您可以在Embedded vs Non-Embedded
处找到一个小注释:
https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb#embedded-vs-non-embedded
答案 1 :(得分:0)
我改为EmbeddedJar而不是InputJar,现在工作正常。 Xamarins网站上的文档没有说它必须是嵌入式的,绑定项目默认为Input但InputJar导致了dexpath问题。