1

Mixpanel を Xamarin.Android プロジェクトに統合しようとしています。しかし、私が呼び出すと、メッセージcom/mixpanel/android/mpmetrics/MixpanelAPICom.Mixpanel.Android.Mpmetrics.MixpanelAPI.GetInstance()で例外がスローされます。java.lang.NoClassDefFoundError

MixpanelAPI.jar をビルドし、「Android Java Bindings Library」プロジェクトを作成し、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

プロジェクトとその中間プロジェクト (存在する場合) を右クリックします。[プロパティ] -> [Java ビルド パス] -> [ライブラリ] -> [削除されたアンドロイの依存関係とアンドロイド プライベート ライブラリ] に移動します。きれいなプロジェクト。classDefNotFound 例外を削除する必要があります。

于 2013-10-03T12:30:48.923 に答える