Android Studio:'依赖关系'如何运作?如何更新库?

时间:2016-11-08 18:45:23

标签: android android-studio gradle android-gradle

我是Android Studio的新手。

我在我的项目中集成了这个库https://github.com/2dxgujun/AndroidTagGroup

我所要做的就是遵循他们的指示,从而在'app gradle file'中添加以下行(在'dependencies'中):

compile 'me.gujun.android.taggroup:library:1.4@aar'

然后点击app gradle文件的Android Studio窗口右上角的“同步”。它运作正常;太棒了!

尽管如此,我并不了解以下事项:

1)“library:1.4@aar”是什么意思?它是一个单独的库文件吗?它位于文件夹中的哪个位置?

2)Android Studio如何知道我的磁盘库位于何处?我将库文件夹复制/粘贴到我在磁盘上拥有所有Android项目的文件夹的根目录;它是Android Studio查找库的默认位置吗?

3)如果我想修改此库中的某些内容并重新编译,我该怎么办?例如,我将13sp(在styles.xml中)修改为30sp,使用“./gradlew assembleDebug”重新编译库(如GitHub中所述)但即使在清理/构建之后它对我的项目也没有影响...为什么?那么“./gradlew assembleDebug”是什么意思?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

  

" library:1.4@aar"意思 ?它是单个库文件吗?

AAR fileJCenter

中提取Maven

对于Maven项目,此依赖关系以pom.xml格式表示,如此

<groupId>me.gujun.android.taggroup</groupId>
<artifactId>library</artifactId>
<version>1.4</version>

如您所见,您拥有工件ID为​​&#34;库&#34;和&#34; 1.4&#34;只是一个版本名称。

  

Android Studio如何知道此磁盘库在磁盘上的位置?

build.gradle文件中,您将有一个这样的部分。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

allprojects {
    repositories {
        jcenter()
        // mavenCentral()
        // mavenLocal()    // Some variant of these. 'jcenter' is the default
    }

取决于您的操作系统,但您的主文件夹中有一个.gradle目录或.m2目录,其中所有Gradle&amp;下载Maven依赖项。

例如,Gson,对我来说是

~/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar
  

如果我想修改此库中的某些内容并重新编译它?

这篇文章可能过于宽泛,但你不会再使用

compile 'me.gujun.android.taggroup:library:1.4@aar'

因为它总是使用Github源,而不是你的更改。您需要克隆存储库并使用Gradle的compile project功能。

  

&#34; ./ gradlew assembleDebug&#34;是什么意思?

使用Gradle包装器为项目的debug构建类型运行assemble task