【问题标题】:Error: Didn't find class android.view.menu (on path)错误:找不到类 android.view.menu(在路径上)
【发布时间】:2017-07-31 16:54:18
【问题描述】:

我正在尝试创建一个 menu 项目。当我运行我的应用程序时,它在启动时立即崩溃,并且在 LogCat 中出现以下错误:

E/AndroidRuntime(1507):由以下原因引起: java.lang.ClassNotFoundException:找不到类 路径上的“android.view.menu”: /data/app/com.thing.appname-2.apk

这是我的 XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/addEventMenu"
              android:title="Add Event"
              android:icon="@drawable/addeventimage"/>
    </menu>

以下是onCreate方法之外的(不知道有没有区别):

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.addEventMenu:
                //do something here when menu button is pressed
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(R.id.addEventMenu);
        return super.onCreateOptionsMenu(menu);
    }

我也试过这个,我得到了同样的错误:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return true;
}

【问题讨论】:

    标签: java android view menu android-studio


    【解决方案1】:

    我在开始 Android 开发之前遇到了同样的问题......

    在您的项目资源的“菜单”下有一个不同的 XML 文件 - 这与布局 XML 文件大不相同。将&lt;menu&gt;&lt;item&gt;(s) 放在“res/menu/main.xml”中。

    此外,Android Studio 有一种奇怪的方式告诉您导入内容...确保您使用

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }
    

    然后点击红色通知导入。

    【讨论】:

    • 谢谢,问题已解决。就我而言,res/menu/ 中没有 main.xml,所以我必须创建一个。
    【解决方案2】:

    当我的布局文件 (activity_main.xml) 有错误的“样式”项目时,我遇到了同样的问题。

    从 xml 文件中删除错误的项目解决了它。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,应用程序崩溃了,并且出现了运行时错误,原因是:

      java.lang.ClassNotFoundException:找不到类“android.view.style”

      从布局文件 (activity_main.xml) 中删除“样式”项目解决了这个问题。我假设如果需要样式项目,正确的导入就可以解决问题。

      【讨论】:

        【解决方案4】:

        您可能正在使用 ActionbarSherlock。如果是这种情况,请尝试导入

        import com.actionbarsherlock.view.Menu;
        import com.actionbarsherlock.view.MenuItem;
        

        而不是android.view.menu

        【讨论】:

          猜你喜欢
          • 2013-07-22
          • 1970-01-01
          • 2016-11-29
          • 2013-01-04
          • 2011-11-27
          • 1970-01-01
          • 2013-12-17
          • 2014-10-22
          • 1970-01-01
          相关资源
          最近更新 更多