之前在eclipse下同时引用多个Android Library Project时,会因为不同Library Project都引用了相同的包如android.support.v4而报错,比如用了actionbarsherlock,又引用了viewpagerIndicator。调来调去真是烦人啊。有时候调好了,eclipse运行还报class not find等稀奇古怪的错误。换了一个eclipse环境,同样的代码又不报错。总之,我对eclipse 算是伤透脑筋。

后来转向Android Studio后,发现真的是越用越好用啊。

在Android Studio中所有的工程文件称为一个Project,不同的工程文件称为Module。

在Android Studio中导入Android Library Project,如viewpagerIndicator,此时主Module中的Dependencies里已经有了一个android-support-v4的包,而Library Module里也有一个包,此时编译的时候就会报错。[Android Studio Workspace] UNEXPECTED TOP-LEVEL EXCEPTION:]

Android studio 解决Android Library Project jar包重复导致的问题

怎样解决这个问题呢?

主的Module和从属的Module 都需要调用android-support-v4包里的内容。去掉哪一个呢?Android Studio中有个Global Libraries的东西。

按住ctrl+shift+alt+s,弹出的Project Structure中有个Global Libraries选项卡。你可以把一个lib包中的东西设置为global的,这样其它的Modules都会调用这个lib里的东西。

Android studio 解决Android Library Project jar包重复导致的问题

们先把Libraries中的两个android-support-v4包都删掉。这时候项目中引用v4包中的类都会报错了。

Android studio 解决Android Library Project jar包重复导致的问题

设置某个jar包为global library,如主工程Module中的v4包。

Android studio 解决Android Library Project jar包重复导致的问题

Android studio 解决Android Library Project jar包重复导致的问题

接下来给Library添加v4包。

Android studio 解决Android Library Project jar包重复导致的问题

添加的时候会有一个选项,可以从global libraries中选择。也就是说不用选择Library Project自己的v4包。


Android studio 解决Android Library Project jar包重复导致的问题

shift+f10,编译、运行成功。

爱死IntelliJ了!!!

相关文章: