android studio使用jcenter上的开源库

来源:互联网 发布:少男的喜欢lofter乐乎 编辑:程序博客网 时间:2024/05/29 06:34

       在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

0 0