Monodroid滑动菜单

时间:2012-11-16 12:59:21

标签: android xamarin.android java java-binding

是否有人在其Monodroid应用程序中导入此滑动菜单项目https://github.com/jfeinstein10/SlidingMenu

我在新的JavaLibraryProject中导入了 jar 文件(com.slidingmenu.lib.slidingmenuactivity.jar)。

我创建了一个新活动,该活动来自 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);
    }        
}

任何想法? 谢谢:))

修改

确定。我做了一点修改:

我已将“assets”,“bin”和“res”文件夹添加到我在 AndroidJavaLibrary 项目中添加的“.zip”文件中。

它编译得很好,但现在我在同一行上得到了另一个错误:

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

2 个答案:

答案 0 :(得分:4)

您需要在Java绑定库和Mono for Android应用程序中包含Jar。只需将一个名为libs的文件夹添加到您的Mono for Android项目中,然后将Jar文件复制到该项目中。然后,您需要将构建操作设置为AndroidJavaLibrary。

所以你的解决方案应该是这样的:

  • Java绑定库 - Jar文件应位于JarInputs文件夹中,构建操作应为InputJar
  • Mono for Android应用程序项目 - Jar文件应位于libs文件夹中,构建操作设置为AndroidJavaLibrary

答案 1 :(得分: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

希望这有助于某人:)