3

我需要在 Android 2.x 中实现 actionbar 我已经尝试过这篇文章并设置官方文章中提到的支持库。

以下是我使用 appcompat 支持库实现 ActionBar 所遵循的步骤:

首先,我使用以下配置创建项目(我不创建图标和默认活动):

最低要求 SDK: API 10:Android 2.3.3(姜饼)
目标 SDK: API 19:Android 4.4
编译: API 10:Android 2.3.3(姜饼)
主题:无

之后,在项目属性 => Android =>中,我添加了android-support-v7-appcompat库项目。

在此之后,我在使用appcompat库的项目中收到128 个这样的错误。它们都与Holo主题有关:

[2013-12-06 13:24:24 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:24: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.  

请注意,该错误仅发生在appcompat库项目中的values-v14values-v11文件夹中。以下是我得到的两个错误示例:

[2013-12-06 13:24:24 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:100: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse'.  
[2013-12-06 13:24:24 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v11\styles_base.xml:26: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ProgressBar.Horizontal'.  

此外,几乎没有与Holo主题无关的错误:

[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:225: error: Error: No resource found that matches the given name: attr 'android:dividerPadding'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:224: error: Error: No resource found that matches the given name: attr 'android:showDividers'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v11\themes_base.xml:33: error: Error: No resource found that matches the given name: attr 'android:windowActionBar'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v11\themes_base.xml:44: error: Error: No resource found that matches the given name: attr 'android:windowActionBar'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\themes_base.xml:41: error: Error: No resource found that matches the given name: attr 'android:actionBarWidgetTheme'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\themes_base.xml:67: error: Error: No resource found that matches the given name: attr 'android:actionBarWidgetTheme'.  
[2013-12-06 13:24:38 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\themes_base.xml:94: error: Error: No resource found that matches the given name: attr 'android:actionBarWidgetTheme'.  

有没有人有同样的问题?

4

5 回答 5

15

将“编译方式”也设置为 API 级别 19 - 当您使用 SDK 级别 10 编译应用程序时,编译器不知道错误日志中显示的元素。

于 2013-12-10T14:54:00.140 回答
2

您需要将 AppCompat 中的 res 目录引用到您的项目中。在那里您可以找到支持操作栏所需的所有资源文件。

如何添加这些资源文件在谷歌开发者网站上有很好的描述:http: //developer.android.com/tools/support-library/setup.html

向下滚动到:“使用资源添加库”。按照说明进行操作,一切都会好起来的;)

于 2013-12-06T21:21:18.550 回答
0

正如 blackfizz 所说, http: //developer.android.com/tools/support-library/setup.html应该为您提供如何在 Eclipse 中设置库的好方法。

另一个注意事项:我强烈推荐使用 Android Studio IDE,因为它支持 gradle 构建系统,这将极大地帮助您设置不同的库。如果您使用的是 gradle,您所要做的就是添加:

dependencies {
    ...
    compile "com.android.support:appcompat-v7:18.0.+"
}

到您的 build.gradle 文件中,然后 gradle 将为您完成剩下的工作。其他第三方库也可以超级容易地添加。它们将通过 Maven Central 自动解决。

几周前我已经用 gradle 切换到了 Android Studio IDE,我再也不想错过它了。

于 2013-12-10T15:02:47.620 回答
0
  1. 右键 -> 属性 -> 切换选项卡到 Android -> 选择项目构建目标 api level 16

  2. 在清单文件中添加android:targetSdkVersion="16" 。

您的清单如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="android.support.v7.appcompat">
    <uses-sdk android:minSdkVersion="7"
        android:targetSdkVersion="16"/>
    <application />
</manifest>
  1. 清理并构建库项目。

就是这样。

于 2014-12-20T08:54:58.977 回答
0

转到项目的Manifest.xml文件。然后设置 android:minSdkVersion="11"。它会解决你的问题。迟到的回复,但可能对其他人有帮助。

于 2015-02-05T12:02:57.873 回答