5

このスライディングメニュープロジェクトhttps://github.com/jfeinstein10/SlidingMenuをMonodroidアプリケーションにインポートした人はいますか?

jarファイル(com.slidingmenu.lib.slidingmenuactivity.jar)を新しいJavaLibraryProjectにインポートしました。

SlidingActivityから拡張する新しいアクティビティを作成しました。

私のプロジェクトはエラーなしでビルドされますが、実行時にこの例外が発生します

Java.Lang.NoClassDefFoundError: com.slidingmenu.lib.R$layout 

の上

base.OnCreate(bundle)

public class MainActivity : SlidingActivity
{
    public override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);    //The EXCEPTION is thrown here
        SetContentView(Resource.Layout.activity_main);
    }

    public override void SetBehindContentView(int p0)
    {
        base.SetBehindContentView(p0);
    }        
}

誰かアイデアはありますか?ありがとう :)

編集

Ok。私は少し変更を加えました:

AndroidJavaLibraryプロジェクトに追加した「.zip」ファイルに「assets」、「bin」、「res」フォルダーを追加しました。

正常にコンパイルされますが、同じ行に別のエラーが表示されます。

Android.Views.InflateException: Binary XML file line #2: Error inflating class com.slidingmenu.lib.SlidingMenu
4

2 に答える 2

4

JarをJavaバインディングライブラリとMonoforAndroidアプリケーションの両方に含める必要があります。Android用Monoプロジェクトにlibsというフォルダーを追加し、その中にJarファイルをコピーするだけです。次に、ビルドアクションをAndroidJavaLibraryに設定する必要があります。

したがって、ソリューションは次のようになります。

  • Javaバインディングライブラリ-JarファイルはJarInputsフォルダーにあり、ビルドアクションはInputJarである必要があります
  • Mono for Androidアプリケーションプロジェクト-Jarファイルはlibsフォルダーにあり、ビルドアクションはAndroidJavaLibraryに設定されている必要があります
于 2012-11-17T01:05:54.247 に答える
0

私はついにそれを動かしました

public class Activity1 : SlidingActivity
{
    int count = 1;

    public override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource

        SetContentView(Resource.Layout.Main);
        SetBehindContentView(Resource.Layout.menu);
        // Get our button from the layout resource,
        // and attach an event to it

        Button button = FindViewById<Button>(Resource.Id.MyButton);

        button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
    }
} 

そして、Monodroidを最新バージョン4.4.54に更新しました

これが誰かに役立つことを願っています:)

于 2013-01-11T10:53:10.757 に答える