2

我已将库模块 ActionBarSherlock 包含到我的项目中。最低 SDK 版本为 10,两个项目的目标 SDK - 13。

但是当我尝试构建项目时,我遇到了很多错误,例如:

[Library] /Users/rankor777/src/ActionBarSherlock/library/res/values-v14/abs__styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.

为什么?

4

4 回答 4

7
  • 下载 ActionBarSherlock zip 文件并将其解压缩到您将使用 ActionBarSherlock 的应用程序模块旁边。从 ActionBarSherlock 文件夹下的 IntelliJ IDEASelect 库文件夹中选择 File->Import Module 并将其作为新模块导入。它将作为 Android 库模块导入。
  • 打开ActionBarSherlock库模块的模块设置,导出android-support-v4.jar依赖

  • 打开应用程序的模块设置,这将使用 ActionBarSherlock 并添加新的模块依赖项

  • 从模块列表中选择 ActionBarSherlock

请参阅带图片的分步说明

PS:互联网上的一些教程指导您将 android-support-v4.jar 添加到应用程序的 libs 文件夹并添加为库依赖项。由于 ActionBarSherlock 已经包含它,您不必这样做,只需从 ActionBarSherlock 导出它。如果您还将 android-support-v4.jar 作为库添加到您自己的模块中,您可能会遇到 UNXPECTED TOP LEVEL EXCEPTION。

于 2012-12-25T07:39:01.977 回答
1

如果我没记错的话,这个问题是由 Java 编译器设置引起的。打开 App Settings 对话框,选择 Compiler -> Java Compiler 并确保您已选择“Javac in-process (Java6+ only)”作为您要使用的编译器。

仅供参考,Google 建议使用最新的 SDK 进行构建,因此您可能应该将目标 SDK 升级到 16。

于 2012-10-05T18:07:44.970 回答
1

你需要碰撞你的目标sdk。(此答案的先前修订错误地表示“您需要提高您的min sdk,但这是不正确的,如下面粘贴的 ABS 文档所证明的那样)。

即使它打算在旧版本的 Android 平台上工作,您仍然必须针对 Android SDK 的 4.0(或更新)版本编译 ActionBarSherlock。

在这里检查:

http://actionbarsherlock.com/usage.html

要求

由于它在 Ice Cream Sandwich 上使用本机操作栏及其相关类,因此该库要求它和您的项目都使用 Android 4.0 或更高版本进行编译。该项目还要求您在您的编辑器和您可能使用的任何构建系统中都使用 JDK 1.6 进行编译。

由于该库是官方支持库的扩展,因此您还必须拥有项目引用的 android-support-v4.jar。

也在这里:

http://actionbarsherlock.com/faq.html

库本身必须针对 Android 4.0(API 级别 14)构建。您的项目应尽可能使用最新版本的 SDK 构建,只要它是 4.0 或更高版本。

需要以 API 级别 11 或更高版本为目标,因为它会导致 Android 在较新的设备上运行时自动添加本机操作栏。由于您将针对新的 API 进行编译,但您的应用程序可能会在具有旧版本 Android 的设备上运行,因此必须特别注意避免使用或正确检查和调用在您的最低 SDK 版本之后引入的任何方法。

于 2012-11-09T21:46:05.207 回答
0

转到文件->项目结构->模块->您的应用程序->依赖项。单击左下角的 +,然后选择 Module Dependency。选择 ActionBarSherlock。

如果它不存在,请确保它是一个库模块 - 展开 ActionBarSherlock 模块并单击 Android,然后选中 Is Library Project。

于 2012-12-04T18:28:51.903 回答