android studio使用jcenter上的开源库

本文介绍如何在Android Studio中使用JCenter的开源库,并解决因引用的库与本地库冲突的问题。通过指定依赖为aar文件而非jar包来避免冲突,同时提供了将Android Library发布到JCenter的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


       在as中使用jcenter的开源库可以很方便的对第三方库进行引用。一般上传到jcenter的开源库有两种形式,一种是jar包,另一种是aar形式。如果我们在自己的项目中引用的是jar包,那么可能会存在开源库用到的jar包和本地jar包冲突的问题,如我们使用compile 'com.gxglacier:pulltoresh:1.0.1'我这个修改过的下拉刷新库,里面会有一些apache的jar包,这些jar包刚好在android sdk中也有,这样就产生了冲突。所以在项目中直接这样引用是不行的,我们要在这样写compile 'com.gxglacier:pulltoresh:1.0.1@aar',这样可以避免在应用打包的时候造成jar包冲突。因为直接引用aar,是不会导出是其中的jar包的。

         ps:com.gxglacier:pulltofresh的开源库是修改了handmark的下拉刷新库,实现了listview首次加载数据的时候就像下拉刷新一样显示header,在动画显示完后回调OnPullDownToRefresh事件,进行首次数据加载。

        android studio开源library到jcenter的方法:https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter,要用到

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
这两个插件,https://github.com/izacus/FuzzyDateFormatter这个链接是一个可以上传到jcenter的开源项目,可以看一下里面的app:build.gradle,project:build.gradle写法。

如果开源库中包含有support-v4等包,有时会报找不到包的总是。要在build.gradle中添加以下代码:

android.libraryVariants.all { variant ->
    println "create generate${variant.name.capitalize()}Javadoc"
    task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
        // title = ''
        // description = ''
        source = variant.javaCompile.source
        classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
        options {
            encoding "utf-8"
            links "http://docs.oracle.com/javase/7/docs/api/"
            linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
        }
        exclude '**/BuildConfig.java'
        exclude '**/R.java'
    }
    task("javadoc${variant.name.capitalize()}Jar",type: Jar, dependsOn: "generate${variant.name.capitalize()}Javadoc"){
        classifier = 'javadoc'
        from tasks.getByName("generate${variant.name.capitalize()}Javadoc").destinationDir
    }
    artifacts {
        archives tasks.getByName("javadoc${variant.name.capitalize()}Jar")
    }
}
参考: http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/0515/2873.html

链接中的代码库:https://github.com/douo/lru-image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值