单调安卓滑动菜单

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”文件夹添加到一个“.zip”文件中,然后将其添加到我的AndroidJavaLibrary项目中。

它可以编译通过,但现在我在同一行上收到另一个错误:

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

4
你需要在Java绑定库和Mono for Android应用程序中都包含Jar文件。只需在Mono for Android项目中添加一个名为libs的文件夹,并将Jar文件复制到其中。然后,您需要将构建操作设置为AndroidJavaLibrary。
因此,您的解决方案应该如下所示:
- Java绑定库 - Jar文件应该在JarInputs文件夹中,构建操作应该是InputJar - Mono for Android应用程序项目 - Jar文件应该在您的libs文件夹中,并将构建操作设置为AndroidJavaLibrary

我已经完成了:将jar文件复制到Monorail应用程序中(但它在项目的根目录中)。我也将其设置为AndroidJavaLibrary。还有其他想法吗?:) - Mihai
你是否添加了所需的资源文件?例如:slidingmenumain.xml等。 - Alex Wiese
好的。我进行了一些修改:我将“assets”、“bin”和“res”文件夹添加到一个“.zip”文件中,然后将其添加到我的AndroidJavaLibrary项目中。它可以顺利编译,但是现在我在同一行上收到另一个错误消息:Android.Views.InflateException: Binary XML file line #2: Error inflating class com.slidingmenu.lib.SlidingMenu - Mihai
@Mihai,你能否将你目前的进展分享到公共场所,以便我们协助调试问题? - chrisntr
这里是我迄今为止所做的内容链接。我还将ActionBarSherlock添加到了我的项目中(但它也不能正常工作)。我需要的主要是滑动菜单,但如果您有任何集成ActionBarSherlock的想法,那就太好了 :)。谢谢 https://www.dropbox.com/sh/tpxw06sukxcokfw/d6-Cd2ntI0 - Mihai
显示剩余4条评论

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。

希望这能对某人有所帮助 :)


我仍然很好奇您是如何解决二进制XML文件第2行的问题:错误膨胀类com.slidingmenu.lib.SlidingMenu的。 - Brandon Meyer
这是我在Visual Studio中引用的项目。希望它能有所帮助 https://www.dropbox.com/s/wcbdocn9hgd1zqf/SlidingMenuJava%20-%20Old.rar - Mihai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接