我正在尝试将Mixpanel集成到我的Xamarin.Android项目中。
但是当我调用Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.GetInstance()
时,会发出java.lang.NoClassDefFoundError
异常消息 com / mixpanel / android / mpmetrics / MixpanelAPI 。
我刚刚构建了MixpanelAPI.jar,然后创建了“Android Java Bindings Library”项目,将jar添加为InputJar(也尝试了EmbeddedJar),然后构建了dll并将其导入到我的项目中。
jar tf MixpanelAPI.jar
显示所有类,javap
显示有效的类接口。
Assembly Browser还显示所有类。但是当谈到class_ref
get
时,会抛出异常。
我无法理解我做错了什么。
堆栈跟踪:
[MonoDroid] UNHANDLED EXCEPTION: Java.Lang.NoClassDefFoundError: Exception of type 'Java.Lang.NoClassDefFoundError' was thrown. [MonoDroid] at Android.Runtime.JNIEnv.FindClass (string) [0x00087] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/b76e8ec4/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.cs:287 [MonoDroid] at Android.Runtime.JNIEnv.FindClass (string,intptr&) [0x00014] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/b76e8ec4/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.cs:300 [MonoDroid] at Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.get_class_ref () [0x00000] in /path/to/mixpanel/bindings/project/Mixpanel/Mixpanel/obj/Release/generated/src/Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.cs:1047 [MonoDroid] at Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.GetInstance (Android.Content.Context,string) [0x00014] in /path/to/mixpanel/bindings/project/Mixpanel/Mixpanel/obj/Release/generated/src/Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.cs:1199
答案 0 :(得分:0)
右键单击项目及其中间项目(如果有)。转到属性 - > Java构建路径 - >库 - >删除的deroied dependecies和android私有库。清洁项目。它应该删除classDefNotFound异常。
答案 1 :(得分:0)
听起来你生成的lib / jar可能引用了一个现在不在范围内的类。 我建议重新访问绑定项目,以确保正确引用所有内容。