5

有没有人在他们的 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
4

2 回答 2

4

您需要将 Jar 包含在您的 Java 绑定库和 Mono for Android 应用程序中。只需将一个名为 libs 的文件夹添加到您的 Mono for Android 项目中,然后将 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 回答