Android Studio : how do 'dependencies' work ? 如何更新库?

标签 android android-studio gradle android-gradle-plugin

我是 Android Studio 的新手。

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

我所要做的就是按照他们的说明进行操作,从而在“app gradle file”(在“dependencies”中)中添加以下行:

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

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

不过,我真的不明白以下事情:

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

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

3) 如果我想修改这个库中的东西并重新编译它应该怎么做?例如,我将 13sp(在 styles.xml 中)修改为 30sp,使用“./gradlew assembleDebug”重新编译库(如 GitHub 上所述),但即使在清理/构建之后它对我的项目也没有影响...为什么?顺便说一句,“./gradlew assembleDebug”是什么意思?

感谢您的帮助!

最佳答案

What does "library:1.4@aar" mean ? Is it a single library file ?

拉一个 AAR file来自 JCenterMaven

在 Maven 项目的情况下,这种依赖性以 pom.xml 格式表示,如下所示

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

如您所见,您的 Artifact ID 为“库”,“1.4”只是一个版本名称。

How does Android Studio know where this library is located on my disk ?

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 和 Maven 依赖项。

比如Gson,对我来说是在

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

if I want to modify something in this library and recompile it ?

对于这篇文章来说可能太宽泛了,但你不会再使用了

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

因为那将始终使用 Github 源,而不是您的更改。您需要克隆 repo 并使用 compile project Gradle 的特点。

What does "./gradlew assembleDebug" mean ?

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

关于Android Studio : how do 'dependencies' work ? 如何更新库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494266/

相关文章:

android - 自动生成的代码(如Dagger2)在持续集成中存在严重问题

android - 小部件更新时 Binder 交易失败

android - 如何将动态自定义 View 嵌入到 xml 布局中?

java - 向特定接收者发送有序广播?

android - 使用Gradle将Unirest添加到Android Studio

android - 为什么应用程序 :assembleDebug called twice?

android - Robolectric Resources$NotFoundException :drawable\abc_ic_ab_back_material. 来自可绘制资源 ID 的 xml

android - ConstraintLayout的优缺点?

java - Android Studio gradle版本错误

Android Studio、Gradle、OpenCV 和 NDK