ActionBarActivity - NoClassDefFoundError异常

时间:2013-09-17 11:25:22

标签: android noclassdeffounderror buildpath android-actionbar-compat android-actionbaractivity

已经看过:NoClassDefFoundError Android with ActionBarActivityActionBarActivity catch an error on Phone

我正在尝试在我的项目中使用 ActionBarCompact 。我已经在我的项目中链接了 android-support-v7 项目及其jar,并检查了许多来源的步骤,但我仍然无法解决问题。

当我构建项目时,没有错误,但在运行时有异常。不知道为什么没有检测到课程。请告诉我有什么问题。感谢。

代码:

import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.widget.ArrayAdapter;

public class mainMenu extends ActionBarActivity implements ActionBar.OnNavigationListener {

    ActionBar actionbar;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menutab);

        actionbar = getSupportActionBar();
        actionbar.setTitle("Menu");
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

        ArrayAdapter<CharSequence> mSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.menu_items, R.id.simpleText);
        actionbar.setListNavigationCallbacks(mSpinnerAdapter, this);
    }

    @Override
    public boolean onNavigationItemSelected(int arg0, long arg1)//item pos, itemid
    {
        switch (arg0) {
        case 0:
            System.out.println("selected: " + arg0);
            break;
        case 1:
            System.out.println("selected: " + arg0);
            break;
        case 2:
            System.out.println("selected: " + arg0);
            break;
        case 3:
            System.out.println("selected: " + arg0);
            break;
        default:
            break;
        }
        return true;
    }
}

------------项目结构和构建路径-----------------

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

logcat的

enter image description here

3 个答案:

答案 0 :(得分:5)

试试这个:

  • 将支持库从"sdk/extras/android/support/v7/appcompat"导入为项目。

  • 项目中的参考库(对于Eclipse,"Properties - Android - Add")。

  • 构建项目(对于Eclipse,"Projects - Build All")。确保您的主项目gen文件夹中有"android.support.v7.appcompat"

如果仍然无法解决您的问题,请重启eclipse。

然后清理并重建项目

如果问题仍然存在,请从您的计算机中删除支持库并重新下载并按照上述步骤操作。

答案 1 :(得分:0)

获取最新版本。

警告:确保从相应的包中导入ActionBar类(和相关的API):

如果支持的API级别低于11:  import android.support.v7.app.ActionBar  并使用getSupportActionBar()

如果仅支持API级别11及更高级别:  import android.app.ActionBar  并使用getActionBar()

来自Google ActionBar

答案 2 :(得分:0)

我与你的原因不一样,但它可能对其他人有所帮助。

在基于eclipse的ADT中,每个新的Android项目生成都是新目录appcompat_v7。 我删除了重复目录(appcompat_7_2等等),因为它们都使用相同版本的od SDK。

然后在 project.properties android.library.reference.1 的路径中提供到不存在目录的路径。

解决方案:

转到项目属性 - &gt; Android - &gt;选择正确的 appcompat_vX 目录并删除前一个目录。