有关Android Studio中的 Jcenter仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关Android Studio中的 Jcenter仓库相关的知识,希望对你有一定的参考价值。

Jcenter仓库是在远程的服务器上,但我试了一下倒入某个jcenter的库文件是不需要联网的,我们电脑本地是否也保存了一份Jcenter的文件仓库?

要回答这个问题,我们要了解一个公司,叫做jfog,它有个网站是Bintray,这个网站类似于github,但关注的领域不一样,github管理的是文本文件,而Bintray专注于管理二进制文件,个人感觉有些类似yy和qq的关系。扯回来,我们今天的主人公Jcenter就存放在Bintray网站里,Bintray下有名的库可不止Jcenter只一个,rpm-center,rubyinstaller都是它里面的仓库。所以,如果我们想把自己的开源库存放在Jcenter上供其它人使用,主要步骤如下:
我们需要注册Bintray账号,然后上传我们的项目到Bintray,最后在Bintray里提交我们的项目,管理员会对项目审核,通过后我们就可以在Gradle里通过制定远程位置来使用自己的库了。好,Let Go!
注册Bintray账号
Bintray官网传送门:https://bintray.com/
但很遗憾的是这个网站国内访问有点尴尬,你需要翻墙才可以。
Bintray是支持Github登陆的,也比较推荐在这种方式,(这里我真的想吐槽下某些sb网站做的连排泄物都不如,通过第三方登陆像还得重新注册!还得手机验证,这种网站必须拉黑)
登陆之后我们需要两个参数,一个是我们的用户名,另外一个就是api key,api key的获取可以参照我下面的gif图片:

先记得这两个数据的获取方式,一会我们会用到。
上传自己的Library到Bintray
关于怎样使用android Studio创建Library这里就不多讲,这里假设我们有一个自己将要上传到Binray,我这里的Library很简单,简单到不需要res文件,是我编写和整理的和Android相关的工具类,我把这个Librasy命名为utils,整个Library目录结构如下:

接下里的步骤比较繁琐,Gradle已经支持通过命令来上传Library到Bintray,但项目的相关信息需要在gradle的配置文件中制定,首先我们需要打开utils这个module下的build.gradle文件,将其替换如下:
apply plugin: \'com.android.library\'apply plugin: \'com.github.dcendents.android-maven\'apply plugin: \'com.jfrog.bintray\'// 这个version是区分library版本的,因此当我们需要更新library时记得修改这个versionversion = "1.0.0"android compileSdkVersion 21 buildToolsVersion "21.1.1" resourcePrefix "随便填" defaultConfig minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName version buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile(\'proguard-android.txt\'), \'proguard-rules.pro\' dependencies compile fileTree(dir: \'libs\', include: [\'*.jar\'])def siteUrl = \'https://github.com/saymagic/AndroidUtils\' // 项目的主页def gitUrl = \'https://github.com/saymagic/AndroidUtils.git\' // Git仓库的urlgroup = "cn.saymagic" // Maven Group ID for the artifact,一般填你唯一的包名install repositories.mavenInstaller // This generates POM.xml with proper parameters pom project packaging \'aar\' // Add your description here name \'Android Commonly used utils\' //项目描述 url siteUrl // Set your license licenses license name \'The Apache Software License, Version 2.0\' url \'http://www.apache.org/licenses/LICENSE-2.0.txt\' developers developer id \'saymagic\' //填写开发者基本信息 name \'saymagic\' email \'cymmagic@gmail.com\' scm connection gitUrl developerConnection gitUrl url siteUrl task sourcesJar(type: Jar) from android.sourceSets.main.java.srcDirs classifier = \'sources\'task javadoc(type: Javadoc) source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator))task javadocJar(type: Jar, dependsOn: javadoc) classifier = \'javadoc\' from javadoc.destinationDirartifacts archives javadocJar archives sourcesJarProperties properties = new Properties()properties.load(project.rootProject.file(\'local.properties\').newDataInputStream())bintray user = properties.getProperty("bintray.user") key = properties.getProperty("bintray.apikey") configurations = [\'archives\'] pkg repo = "maven" //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库 name = "utils" //发布到Bintray上的项目名字 websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish = true

注意里面的信息需要按照自己的个人资料进行修改。
因为上述的文件里需要依赖一些其它的库,所以接下来再到我们项目最外层build.gradle文件里,添加如下两个依赖
classpath \'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0\'classpath \'com.github.dcendents:android-maven-plugin:1.2\'

修改后的文件如下:
buildscript repositories jcenter() dependencies classpath \'com.android.tools.build:gradle:1.0.0\' classpath \'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0\' classpath \'com.github.dcendents:android-maven-plugin:1.2\' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files allprojects repositories jcenter()

最后,我们在打开项目最外层的local.properties文件,添加如下两行:
bintray.user=your_user_namebintray.apikey=your_apikey

your_user_name和your_apikey这两个数据就是我们在第一步注册Bintray时提到的两个参数,
解析来,在项目的根目录下执行
gradle build

这样,我们就可以到到我们的module下会生成如下目录:/build/outputs/aar/
在arr目录下有如下两个文件:

以arr文件结尾的就是Gradle将我们的library打包成的二进制文件,别忘记了,Bintray就是用于存储二进制文件的仓库,所以执行下面的命令。就可以将我们的library上传到Bintary。
gradle bintrayUpload

上传成功之后,就会在bintray的maven仓库下看到我们上传的Library:

提交项目到Jcenter
我们点开我们刚刚提交项目的主页,点击右下角的add to jcenter按钮

接下来写一些评论:

点击send后就可以等管理员的审核了。
大概一小时后,管理员就会审核通过:

这样,我们就可以在Dependence里这样来引用我们自己的项目了:
dependencies compile \'cn.saymagic.utils:utils:1.0.0\'追问

谢谢分享经验,但是我的问题是我们电脑本地是否也有一份jcenter()的仓库?

参考技术A 您好,请问您是想知道有关Android Studio中的 Jcenter仓库吗?

带Spinner的Android Studio对话框[关闭]

enter image description here

当我在寻找有关如何使用微调器创建对话框的教程时,我在googles教程页面上找到了以下示例,但是它们没有提供代码。此外,通过在微调器对话框教程后使用谷歌搜索,我找不到这样一个设计良好的对话框。

所以我想问一下是否有人可能知道接收的结果相等/几乎相等? (我说的是左边的)

答案

左图中的小部件是NumberPicker,而不是微调器。

要创建自定义对话框,您可以使用DialogFragment,官方文档提供很好的示例。我个人认为它比任何其他教程都要好。

另一答案

在该布局中使用Spinner创建布局文件...

在Activity中,使用LayoutInflater为您的布局充气,如 -

View view = getLayoutInflater(R.layout.dialog_layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
builder.setView(view).show();

以上是关于有关Android Studio中的 Jcenter仓库的主要内容,如果未能解决你的问题,请参考以下文章

android-studio打包APK出现有关apk图标问题

Android Studio 中的 ListFragment

android studio 3.1.3中的Gradle项目同步失败

Android Studio 3.0 rc2中的弹出文档

Java 代码没有在 Android Studio 中启动新活动?和上下文有关吗?

Macbook M1 上有关 Android Studio 的错误:尝试计算所需的包时发生错误