如何在 Android Studio 项目中将库添加到 Gradle 构建?

Posted

技术标签:

【中文标题】如何在 Android Studio 项目中将库添加到 Gradle 构建?【英文标题】:How to add a library to Gradle build in Android Studio project? 【发布时间】:2021-05-04 13:10:12 【问题描述】:

我想将以下库添加到我的项目的 Gradle 构建中。我要添加的库是:我已经下载的signal-protocol-java-2.8.1.jar。如何将它添加到 Gradle 构建中,以便将 .jar 中包含的类导入我正在开发的 java 类中?

这是我的build.gradle 文件:

buildscript 
    repositories 
        google()
        mavenCentral()
        jcenter 
            content 
                includeVersion 'org.jetbrains.trove4j', 'trove4j', '20160824'
                includeGroupByRegex "com\\.archinamon.*"
            
        
    
    dependencies 
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.14'
        classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha09"
    



ext 
    BUILD_TOOL_VERSION = '30.0.2'

    COMPILE_SDK = 30
    TARGET_SDK  = 30
    MINIMUM_SDK = 19

    JAVA_VERSION = JavaVersion.VERSION_1_8


wrapper 
    distributionType = Wrapper.DistributionType.ALL


allprojects 
    repositories 
        google()
        jcenter()
    


subprojects 
    ext.lib_signal_service_version_number   = "2.15.3"
    ext.lib_signal_service_group_info       = "org.whispersystems"
    ext.lib_signal_metadata_version         = "0.1.2"

    if (JavaVersion.current().isJava8Compatible()) 
        allprojects 
            tasks.withType(Javadoc) 
                options.addStringOption('Xdoclint:none', '-quiet')
            
        
    


task qa 
    group 'Verification'
    description 'Quality Assurance. Run before pushing.'
    dependsOn ':Signal-Android:testPlayProdReleaseUnitTest',
            ':Signal-Android:lintPlayProdRelease',
            ':libsignal-service:test',
            ':Signal-Android:assemblePlayProdDebug'

【问题讨论】:

如果您在项目中将其作为模块使用,请使用implemenation project(":..."),其中... 是您的模块名称。把它放在你的应用模块的dependencies 闭包中。见the documentation。 【参考方案1】:

您必须编辑您的模块级build.gradle(您发布的是项目级)。它通常位于项目的“app”文件夹中。找到 dependencies 块并添加这一行:

dependencies 
    implementation fileTree(dir: "libs", include: ["*.jar"])
    ...

然后在这个 gradle 文件附近创建一个文件夹“libs”并将你的 .jar 库放在那里。将项目与 Gradle 同步。

【讨论】:

我应该将哪个 .gradle 库放在“libs”文件夹中? @alexal1 打错字了,对不起!将您的 .jar 库放入“libs”文件夹。也编辑了帖子 谢谢,我做到了。我实际上有一个问题,我想从另一个文件夹访问“.jar”中的类。我怎样才能访问它们? @alexal1 根据您的问题,您想“将 .jar 中包含的类导入我正在开发的 java 类中”,这是真的吗?然后按照我说的做,在 Android Studio 中用 Gradle 同步项目。然后你就可以导入它们了。 谢谢,我加了。如果你能帮助我,我还有一个问题。你知道如何排除我添加的库中包含的一些文件吗?项目中已经存在另一个版本的库,我有关于重复的错误:(@alexal1

以上是关于如何在 Android Studio 项目中将库添加到 Gradle 构建?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android studio 中使用我的 android 项目作为其他项目中的库? [复制]

如何将 Flash builder 项目作为库包含在 android Studio 中?

如何在 Android Studio 中将文本设置为对应的图像

如何在 Android Studio 中将 ListView 更改为 RecyclerView?

如何在 Android Studio Java 中将数组上传到 Firestore 数据

如何在Android Studio中将Pdf文件转换为文本