Java API级别8的NoClassDefFoundError
我想让我的应用程序兼容较低的API级别。在19级,一切正常,但在8级,这一行会导致NoClassDefFoundError:Java API级别8的NoClassDefFoundError,java,android,eclipse,Java,Android,Eclipse,我想让我的应用程序兼容较低的API级别。在19级,一切正常,但在8级,这一行会导致NoClassDefFoundError: Intent intent = new Intent(this, ActivityData.class); 我试图打开的活动使用了android.app.actionBar,因此我认为这就是应用程序崩溃的原因。但我不明白为什么会抛出NoClassDefFoundError。有人对此作出解释吗 此外,eclipse没有将android.app.actionBar的导入标记
Intent intent = new Intent(this, ActivityData.class);
我试图打开的活动使用了android.app.actionBar,因此我认为这就是应用程序崩溃的原因。但我不明白为什么会抛出NoClassDefFoundError。有人对此作出解释吗
此外,eclipse没有将android.app.actionBar的导入标记为警告或错误,尽管我选择了API级别8作为最低级别。有没有一个选项可以让eclipse标记我的代码中与我选择的API不兼容的部分?兄弟,您已经回答了这个问题。首先要了解的是,Eclipse不是Android的官方工具包。对于上述问题,Eclipse不能帮助我们。因此,您必须手动将api级别定义为11。如果您想使用ActionBar类,请考虑使用不同的API级别意味着什么。如果操作栏是在API级别11上发布的,那么API级别8没有使操作栏工作所需的类和资源,这就是为什么会出现NoClassDefFound错误。“首先要理解的是,Eclipse不是Android的官方工具包。”--这肯定是一个官方支持的Android IDE。感谢Commonware纠正我的错误。顺便说一句,我是你的Android书的粉丝,“但我不明白为什么会抛出NoClassDefFoundError。有人对此有解释吗?”——如果没有看到讨论中的活动,这将很难回答。“此外,eclipse不会将android.app.actionBar的导入标记为警告或错误”--Lint不会抱怨
import
语句。但是,如果您的android:minSdkVersion
设置正确,它将对此类类的实际使用发出警告。因此,如果您的android:minSdkVersion
小于11,调用getActionBar()
之类的方法应该会导致错误,除非您禁用那些Lint检查。啊,到目前为止我还不知道Lint,我想这会对我有所帮助,谢谢!