Xamarin的android项目如果在运行过程中出现以下错误:Java.Lang.ClassNotFoundException: Didn’t find class “com.packagename.classname” on path: DexPathList

说明jar包的生成方式有问题,将默认的InputJar改成EmbeddedJar。

InputJar方式通常需要保留jar包,默认没有将jar包保留,所报错!

下面是生成方式说明:

EmbeddedJar – 将 .jar作为嵌入资源嵌入到生成的绑定库 DLL 中。 这是最简单且最常用的生成操作。 如果希望将 .jar自动编译到字节代码中并打包到绑定库中,请使用此选项。
InputJar – 不会将 .jar嵌入到生成的绑定库.DLL. 绑定库。DLL 将在运行时依赖于此 .jar 。 如果你不希望在绑定库中包含 .jar (例如,出于许可原因),请使用此选项。 如果使用此选项,则必须确保输入 .jar在运行应用的设备上可用。
LibraryProjectZip – 嵌入。AAR 文件转换为生成的绑定库.DLL. 这类似于 EmbeddedJar,但你可以在绑定中访问资源(以及代码)。AAR 文件。 如果要嵌入,请使用此选项。AAR 到绑定库。
ReferenceJar – 指定引用 。 .jar:引用 .jar是您的一个或多个绑定的 .jar 。AAR 文件依赖于。 此引用 .jar仅用于满足编译时依赖关系。 使用此生成操作时, C#不会为引用 .jar创建绑定,也不会将其嵌入到生成的绑定库中.DLL. 当你将绑定库用于引用 .jar后,请使用此选项。 此生成操作适用于打包多个 .jar(和/或。AARs)转换为多个相互依赖的绑定库。
EmbeddedReferenceJar –将 Reference 嵌入到生成的绑定库.DLL. 若要为输入 .jar (或)创建C#绑定,请使用此生成操作。AAR)及其所有引用 .jar的绑定库。
EmbeddedNativeLibrary –将本机嵌入到绑定中。 此生成操作用于 。因此,所绑定的 .jar文件所需的文件。 可能需要在执行 Java 库中的代码之前手动加载 。