如何将Android studio中Library发布到Jcenter
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Android studio中Library发布到Jcenter相关的知识,希望对你有一定的参考价值。
参考技术A 1.在androidStudio中导入Library项目1启动AndroidStudio后,打开你需要接收Library的项目。比如有两个项目,项目A,和Library项目B,那么打开项目A。图中所示为项目的结构图,点击右上角的File菜单。2在下拉菜单中依次找到New——ImportModule,点击打开项目导入窗口。注意导入的是Module而不是Project,如果是Project的话AndroidStudio会自动打开一个新的窗口编辑,那样的话就是不Library了。3在打开的窗口中点击右侧的""浏览窗口,在文件夹窗口中找到你要导入的Library项目的位置,选择后点击底部的OK按钮导入。4导入窗口中显示了该Module(项目)的详细信息,点击Finish完成导入。需要注意的是导入到AndoridStudio项目中的Library也必须是AndroidStudio项目,不能是Eclipse项目,如果是Eclipse项目的话,需要选择导出AndroidStudio项目。5在项目首页中选择Project标签,可以看到项目的文件结构图中多出了我们刚才导入的项目。Library的导入就完成了,接下来的步骤中需要把这个Library项目添加到原项目中,才能正常的引用Librara项目中的内容。END2.把Library项目添加到源项目中点击顶部左上角的File菜单,在出现的下拉菜单中找到ProjectStructure,点击进入。在窗口左侧选择原始的项目后,点击右侧的Dependencies(依赖项)。可以看到项目当前引用的jar包等信息。点击右侧的“+”添加按钮,在下拉菜单中找到ModuleDependency(项目依赖),点击打开项目选择窗口。选择前面步骤中导入的Library项目后,点击OK按钮导入到原始项目中。原始项目的依赖项中就出现了导入的Libray项目,这时在项目中就能正确引用Library项目中的内容了,点击底部的OK按钮完成添加。出现是否更新CVS文件的提示窗口的话,点击Yes进行进行更新和确认。项目进入到Gradle自动构建的环节。构建完成后点击底部的Messages,选中GradleBuild。在里面提示了BUILDSUCCESSFUL,说明项目构建完成。这时Library项目就导入到原始项目完毕,可以在项目中正常引用Library项目中的内容了。 参考技术B 1整理需要发布的Module在需要发布的Library的Build.Gradle文件的最下面,加入这行代码applyfrom:'//raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle',前面加上http接着,在applyplugin:‘com.android.library’后面,加入如下代码:extPUBLISH_GROUP_ID='cn.weidongjian.android'PUBLISH_ARTIFACT_ID='progress-button'PUBLISH_VERSION='0.2'其中PUBLISH_GROUP_ID填写对应开发者的名称,PUBLISH_ARTIFACT_ID填写项目的名称,PUBLISH_VERSION填写项目的版本,但发布到Jcenter通过后,compile地址即是:PUBLISH_GROUP_ID:PUBLISH_ARTIFACT_ID:PUBLISH_VERSION比如说,这个项目的地址是:compile'cn.weidongjian.android:progress-button:0.2'2生成Zip文件打开terminal,填入这行代码,然后按EntergradlewcleanbuildgenerateRelease点击Enter后,如果是第一次生成,需要下载相应的Gradle文件,如果下载失败的话,说明需要翻墙,下载完成后,即开始生成zip文件,会有许多消息产生,大概是这个样子最后说明zip文件成功生成,并且地址在F:\practise\ProgressButton\progressbutton\build/release-0.2.zip,把这个zip文件挪到桌面,后面要用的到。3注册bintray账号并建立仓库进入bintray,点击注册一个账号然后在主页中点击NewRepository,新建一个仓库仓库名称随便写,type记得选择Maven,下面的GPG之类的,不要勾选然后在仓库的主页上,点击AddNewPackage生成新的package,这个package的名称可以选择填写Library的名称,License选择Apache-2.0点击CreatePackage生成Package4建立Vertion并且上传zip包进入package的页面,点击NewVersion,新建一个version填写不要的信息,然后在package页面,点击新建好的version,这里的新建的version的名称叫InitialCommit,进入version页面然后点击UploadFiles,上传之前生成的Zip包点击Clicktoaddfiles,添加文件,文件添加成功后,要选中explodingthearchive选项然后点击SaveChanges,接着页面会提示有几个文件没有publish,点击publish既可以4发布到Jcenter接在回到package页面,再右下角有一个AddToJcenter的按钮,点击申请上传到Jcenter上传到Jcenter需要审核大概两个小时,审核通过后会邮件通知,这样就大功告成了,然后就可以把compile地址告诉别人了,不知道compile地址,请查看第一点android studio 导入外部库文件,以及将项目中module变成library引用依赖
一:导入如百度地图等的外部类。
步骤:1.首先 将androidstudio项目显示切换到 project 状态显示项目
2.然后添加.jar文件,将所有的.jar文件放入libs文件夹内(libs文件夹就在项目文件夹下),然后在引入的.jar文件上右键然后点击 Add As Library... OK jar文件引入。
3.添加.so文件,在项目下的src目录下的main目录下新建jniLibs文件夹,然后将so文件连带着他外面的文件夹整个复制到jniLibs文件夹下(注意:so文件不能直接存在于jniLibs文件夹下,需要存在于如armeabi等文件中放入jniLibs文件夹下),倒入文件后在该文件的build.gradle中添加。(为了保证不出错,可以将.jar文件放入JinLibs将so文件放入libs文件中,使得libs跟jniLibs文件夹下都存在so跟jar。)
sourceSets{ main(){ jniLibs.srcDirs = [\'libs\'] } }
代码。具体放入位置如下:
apply plugin: \'com.android.library\' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(\'proguard-android.txt\'), \'proguard-rules.pro\' } } sourceSets{ main(){ jniLibs.srcDirs = [\'libs\'] } } } dependencies { compile fileTree(dir: \'libs\', include: [\'*.jar\']) testCompile \'junit:junit:4.12\' compile \'com.android.support:appcompat-v7:23.4.0\' compile files(\'libs/BaiduLBS_Android.jar\') }
现在就可以使用外部类的方法了。
二:将同项目的module作为依赖包引用
1.选择你想作为library的module。选择他的build.gradle文件将最上方的代码apply plugin: \'com.android.application\'改为apply plugin: \'com.android.library\'。然后将下面的代码删去位置为:android下的defaultConfig下的applicationId "frame.myc.com.mycframe"。删除后代码为
android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(\'proguard-android.txt\'), \'proguard-rules.pro\' } } sourceSets{ main(){ jniLibs.srcDirs = [\'libs\'] } } }
2.为主文件添加依赖 mac下使用以下操作:点击file->project structure左边的module下选择你的主工程,然后右边点击dependencies,点击下方或者右方的+点开后在三个选项中选择module dependency,在弹出界面选择你刚刚修改作为library的midule文件 ok了。
其实最简单的方法就是刚开始建立module的时候就作为library来新建。仔细去新建一个module来体会一下,在选择模式的时候选择library就可以啦
出现错误:当你的程序需要引用两个及以上的module library或者其他的jar包是出现错误类型如下
Error:Execution failed for task \':app:transformResourcesWithMergeJavaResForDebug\'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK org/apache/log4j/xml/log4j.dtd File1: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/facelibrary/unspecified/jars/classes.jar File2: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/rylibrary/unspecified/jars/classes.jar
出现上述错误的原因是因为 你在引用的labrary中多个存在相同的包导致在打包是冲突 解决方式如下,在android下的 写
packagingOptions{ exclude \'org/apache/log4j/xml/log4j.dtd\' }
\'\'单引号中的内容为上述错误中APK后面的内容,按照上述的样式填写在 主的app.gradle 中,重新编译后运行,运行后还可能出现相同的错误 这时候请注意错误后面APK中的内容 此时应该与前一次出现的内容不相同。如果是这样的话继续按照上述的方式增加,循环最后就没有这个错误了。
转自:https://www.cnblogs.com/minyc/p/myc201605231154.html
以上是关于如何将Android studio中Library发布到Jcenter的主要内容,如果未能解决你的问题,请参考以下文章
如何解决android studio多个library库含有相同引用
如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
如何解决android studio多个library库含有相同引用
android studio add modle libraray Android studio如何正确的导入第三方Library库?
android studio 导入外部库文件,以及将项目中module变成library引用依赖
如何使用android studio把自己的android library分享到jcenter和maven central