在gradle中从jar中排除jar

时间:2014-07-10 16:10:24

标签: android gradle android-support-library viewpagerindicator

我在gradle中有以下依赖性

        compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
        compile 'org.apache.httpcomponents:httpcore:4.3.2'
        compile('com.viewpagerindicator:library:2.4.1')
        compile 'com.android.support:support-v13:+'

com.viewpagerindicator:library:2.4.1包括android-support-v4,但我的项目使用v13。有没有办法从gradle我可以告诉模块viewpagerindicator:library使用v13?

截至目前,由于Error:(193, 23) error: cannot find symbol method postInvalidateOnAnimation(BezelImageView)覆盖v13功能,我得到viewpagerindicator:library

1 个答案:

答案 0 :(得分:1)

支持库名称中的“v4”和“v13”未引用支持库的特定版本 - 它们指的是特定支持库支持的最小SDK。您不能简单地用v13替换v4,因为v4库包含v13库没有的API。

目前有4种不同的Android支持库 - v4,v7,v8和v13。您应该将每个视为一个独特的库。如果你真的想要,你可以同时使用所有这些。每个库中的类都在android.support.vX包中,其中X是您正在使用的支持库的版本。因此,v4支持库中的类不会“覆盖”v13库中的类。

其次,v13支持库中不存在您要查找的方法(postInvalidateOnAnimation(View))。它属于v4支持库。

最后,通常不会导出库的依赖项。也就是说,如果ViewPagerIndicator库使用v4支持库并且您想要使用v4支持库,则仍需要将v4支持库添加到依赖项以访问这些类。

长话短说,此时您真正需要做的就是将您的应用程序编译为依赖项添加compile 'com.android.support:support-v14:19.1.0'