1

我正在尝试将 Mixpanel 集成到我的 Xamarin.Android 项目中。但是当我打电话时Com.Mixpanel.Android.Mpmetrics.MixpanelAPI.GetInstance()java.lang.NoClassDefFoundError会抛出异常消息com/mixpanel/android/mpmetrics/MixpanelAPI

我刚刚构建了 MixpanelAPI.jar,然后创建了“Android Java 绑定库”项目,将 jar 添加为 InputJar(也尝试了 EmbeddedJar),然后构建了 dll 并将其导入到我的项目中。

jar tf MixpanelAPI.jar显示所有类,javap显示有效的类接口。装配浏览器还显示所有类。但是当涉及到时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

Mixpanel 绑定 (65 KB)绑定测试项目 (7 KB)

4

2 回答 2

0

听起来您生成的 lib/jar 可能正在引用一个现在不在范围内的类。我建议重新访问绑定项目以确保正确引用所有内容。

于 2013-10-03T13:56:38.437 回答
0

Right click on project and its intermeadiate project if any. Go to Properties->Java Build Path->Libraries-> The removed androied dependecies and android private libraries. Clean projects. It should remove classDefNotFound exception.

于 2013-10-03T12:30:48.923 回答