我已经在Eclipse中成功创建了一个应用程序,它适用于Android 4.0及更高版本。现在我想让它兼容Android 2.3及更高版本。在我的应用程序中,我使用了操作栏,因此我在工作区的工作集中添加了android-support-v7-appcompat库项目。遵循http://developer.android.com/tools/support-library/setup.html指令后,现在我的项目Android私有库部分中有'android-support-v7-appcompat.jar'和'android-support-v4.jar'。我还有我的项目的libs文件夹下的jar文件。
在我的主要活动中,我已导入:
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
在AndroidManifest.xml文件中,我声明了:
<application android:allowBackup="true"
android:theme="@style/Theme.AppCompat"
此外,对于不同的活动,声明为:
<activity android:
android:uiOptions="splitActionBarWhenNarrow"
以前我的AndroidManifest.xml是这样的:
<application android:allowBackup="true"
android:theme="@style/<theme>"
和res&gt; values文件夹下的styles.xml是这样的:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="<base>" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="<theme>" parent="<base>">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>
使用
<style name="<base>" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
在values-v11文件夹和
中<style name="<base>" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 11 theme customizations can go here. -->
</style>
在values-v14文件夹中。
我现在已将库项目中的所有styles_base.xml和themes_base.xml文件包含到我的项目中。还通过将Theme替换为。
来更改styles.xml文件每次我运行应用程序时,我都会面临崩溃,现在甚至是4.0及更高版本的Android版本。消息:
java.main.NoClassDefFounderError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate
请帮助。
答案 0 :(得分:4)
确保在项目属性中检查兼容性库 - &gt; Java构建路径 - &gt;订单和导出部分如下:
否则它们将不会包含在生成的APK中。
修改强>
我认为你应该重新开始,因为你真的不应该将这些XML从支持lib添加到你自己的项目中。