正确引用 Android Support v7 兼容支持库

这个问题昨天下午折腾了我老人家一下午,手动进行了各种组合,最终得以解决。现将步骤严格记录于此,以作备忘。

一、环境及前提
1、Windows 7/Mac OS X 10.9;
2、Eclipse 4.4.1(Luna);
3、ADT 23.0.3;
4、Android Support Library 已经用 Android SDK Manager 下载完毕。

二、创建可引用的工程 android-support-v7-appcompat
1、打开 eclipse,从 File 菜单选择 Import…;
2、在想到中选择 Android 下的 Existing Android Code Into Workspace,点击 Next;
3、点击 Root Directory 行尾的 Browse 按钮,选中 \extra\android\compatibility\v7\appcompat,确定;
4、在向导中点击 Finish,则一个名为 android-support-v7-appcompat 的工程会出现在 Package Explorer 中;
5、在工程名上右击,打开关联菜单,选择 Properties;
6、在 Properties 对话框左侧点选 Android 条目,此时右侧的 Project Build Target 列表中将列出 SDK 目录下所有已安装的条目,找到列表框下的 Is Library 的复选框(如果安装了很多版本的 SDK,则可能需要拖动滚动条才能看见此复选框);
7、将 Is Library 复选框点选为选中状态;
8、点击 OK 确定。

三、配置要引用的工程
1、在此工程名上,执行上面的 5、6 两个步骤;
2、点击 Is Library 复选框下一行尾的 Add… 按钮,在弹出的 Project Selection 对话框中选中 android-support-v7-appcompat 并点击 OK 确认;
3、点击 OK 关闭 Properties 对话框;
4、至此,android-support-v7-appcompat.jar 应该出现在工程中的 Android Dependencies 文件夹下;
5、而 Android Private Libraries 文件夹下则会出现 android-support-v7-appcompat.jar 和 android-support-v4.jar;
6、请确保工程中没有以其他的形式对 5 中提到的两个 jar 进行引用设置;
7、如果 eclipse 的 console 视图中出现类似于 styles_base.xml:24: error: Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Holo.ActionBar’ 这样的错误,请将 AndroidManifest.xml 中的 minSdkVersion 和 targetSdkVersion 值调整为 7。

四、释疑和备注
之所以要创建一个新的工程以供引用,主要原因在于 SDK 中提供的 jar 需要额外的资源文件,这些资源文件会被新工程包含进来,这样才能被引用工程使用到。

开始一直失败,主要在于 三.2 的步骤没有正确执行,而是一直在 Java Build Path 中配置;而没有正确执行的主要原因就在于三太爷的 SDK 版本太全,以至于 Project Build Target 列表把 Is Library 撑到了可视范围之外。基于此,还一度怀疑被引用的工程创建的有问题,在 Import 环节上做了很多次尝试,例如选择 General 下的 Archive 模式或者 Existing Projects Into Workspace,由此更是走到了邪路上。

要验证在引用的工程中配置是否正确非常简单,查看 三.4 和 三.5 中的三个文件的路径即可。对于 Android Dependencies 文件夹下的 android-support-v7-appcompat.jar,它是被引用的工程的输出,因此鼠标指针悬停于其上时,补全显示的全路径最后应该是 bin;而 Android Private Libraries 文件夹下的 android-support-v7-appcompat.jar 和 android-support-v4.jar,是被引用工程的引用,因此其显示的全路径最后应该是 libs,位于 SDK 目录之下。当然,更简单的验证方法就是工程是否能够编译成功。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注