【问题标题】:ActionBarActivity - NoClassDefFoundError exceptionActionBarActivity - NoClassDefFoundError 异常
【发布时间】:2013-09-17 11:25:21
【问题描述】:

已经看过: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;
    }
}

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

Logcat

【问题讨论】:

  • 有什么异常?能发一下logcat吗?
  • 你能发布 logcat 吗?您也可能需要更改构建顺序
  • @Szymon 我已经发布了 logcat
  • 我勾选了 android-support-v7-appcompat(按顺序和导出)。它已经包含在我的私有依赖项中。
  • @Szymon 但它不包含在我项目的私有依赖项中..

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


【解决方案1】:

试试这个:

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

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

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

如果还是不能解决你的问题,重启eclipse。

然后清理并重建项目

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

【讨论】:

  • 好的。我会尽快通知你。
【解决方案2】:

获取最新版本。

注意:请务必从适当的包中导入 ActionBar 类(和相关 API):

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

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

来自Google ActionBar

【讨论】:

    【解决方案3】:

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

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

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

    解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多