已经看过:NoClassDefFoundError Android with ActionBarActivity和ActionBarActivity 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的
答案 0 :(得分:5)
试试这个:
将支持库从"sdk/extras/android/support/v7/appcompat"
导入为项目。
项目中的参考库(对于Eclipse,"Properties - Android - Add"
)。
"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()
答案 2 :(得分:0)
我与你的原因不一样,但它可能对其他人有所帮助。
在基于eclipse的ADT中,每个新的Android项目生成都是新目录appcompat_v7。 我删除了重复目录(appcompat_7_2等等),因为它们都使用相同版本的od SDK。
然后在 project.properties android.library.reference.1 的路径中提供到不存在目录的路径。
解决方案:
转到项目属性 - &gt; Android - &gt;选择正确的 appcompat_vX 目录并删除前一个目录。