Java.Lang.ClassNotFoundException:在路径上找不到类“com.site24x7.android.apm.Apm”:DexPathList

时间:2016-08-24 15:21:20

标签: android xamarin xamarin.android

我为.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并按照这些说明进行操作。

2 个答案:

答案 0 :(得分:2)

您需要确保Embed绑定Jar,以便它嵌入到.apk中。您可以在我们的故障排除页面上找到类似的错误:

https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/troubleshooting-bindings/#Problem_NoClassDefFoundError_in_packaging

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问题。