解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题

时间:2022-08-27 15:58:36


       在今年早些时候发布的新版ADT中引入了不少新元素,其中最明显的莫过于每新建一个Android Application Project工程,都会随之生成一个appcompat_v7_xx/android-support-v7-appcompat工程,有时候如果一个workspace里面新建的多个工程的话,会使得左边的工程浏览窗口出现很长一排的appcompat_v7_xx工程,如下图:

解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题

       那么如何解决这个问题呢?要解决这个问题就必须要先了解这个appcompat_v7/android-support-v7-appcompat是个什么东西,这里我从别处导入一个纯Android工程,右键->import->Existing Android Code Into WorkSspace->选中对应文件夹,可以看到如图的工程被导入了:解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题,由于这里只导入了一个工程,却没有对应的appcompat_v7工程,所以有错。我们来看看到底错误是什么。如图:

解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题

我们发现错误位于res/values/文件夹中的styles.xml文件中:解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题       发现是主题找不到的错误。我们都知道在res中的任何文件夹中添加任何一项,都会在gen/包名/R.java下自动添加对应的成员变量,这里出错的标签为:

<span style="font-size:14px;"><style name="AppBaseTheme" parent="Theme.AppCompat.Light"></span>

       而我们到R.java中去搜却并搜不到这个所谓的parent="Theme.AppCompat.Light"。那么这个Theme.AppCompat.Light在哪里呢?我们现在不妨来做一件事,在workspace中新建别的工程时系统自动生成的appcompat_v7工程来寻找Theme.AppCompat.Light,选中appcompat_v7工程,按ctrl+H,在File Search中的Contening text中搜索Theme.AppCompat.Light,发现得到结果:

解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题


       那么现在的问题就是如何将这两个工程关联起来,我们右键点导入的工程-->properties-->Android-->下拉有个Library框,里面一般有一个红叉的appcompat_v7_xx,我们选中将其remove掉,然后点add,选中我们刚才搜索Theme.AppCompat.Light的那个appcompat_v7工程,点确定,发现添加成功:解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题

这时候我们再点OK,会发现原导入工程的红叉没了,如图:

解决新版eclipse/ADT中新建Android工程出现多个appcompat_v7的问题

,以此类推,以后新建工程生成的appcompat_v7工程都可以删掉,然后在工程properties里面选中第一个生成的appcompat_v7工程就ok了~