【Android】Android开发 添加第三方工程

本文介绍了如何在IntelliJ IDEA中将一个Android项目作为依赖添加到另一个项目中。通过创建项目、配置Gradle文件、添加Module Dependency以及处理文件路径,成功案例展示了如何使依赖项目在目标项目中正常工作。同时,文中提到了一种常见的失败案例,即直接通过Project Structure导入项目,这种方法并不可行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境

  • 开发工具:IntelliJ IDEA 2018
  • SDK版本:Android API 28
  • Java版本:Java 11.0.1

目的

用IntlliJ IDEA进行安卓开发的时候,需要用到另一个安卓项目的功能模块,于是要想办法把依赖的工程添加到项目中。在测试了无数次“Import Module”并失败后,终于找到了解决方案。

创建项目

为了更好的演示效果,在这里我创建三个Android项目demo1、demo2、agent,之后分别在demo1和demo2里添加agent并对其引用。
demo1的文件在com.example.demo1下,demo2的文件在com.example.demo2下,agent的文件在com.example.agent下。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
以此类推创建三个项目,并对其进行配置。建议一开始的时候,选择自动导入Gradle:
在这里插入图片描述

添加依赖项目(成功案例)

配置文件

首先在demo1项目下创建一个libs文件夹(方便项目管理),并将依赖项目放到该目录下。
在这里插入图片描述
之后修改项目的配置:
需要修改三个文件:agent/build.gradle、demo1/settings.gradle、demo1/app/build.gradle
在这里插入图片描述
在这里插入图片描述

  • 在agent/build.gradle文件中添加:
apply plugin: 'android-library'

android {
    compileSdkVersion 28
    buildToolsVersion "27.0.3"

    sourceSets {
        main {
            manifest.srcFile 'app/src/main/AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['aidl']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

并将原有的take clean部分删掉:

task clean(type: Delete) {
    delete rootProject.buildDir
}

因为demo1项目中已经有一个clean()函数,若不删掉agent/build.gradle中的clean()则会报错。

  • 在settings.gradle文件中添加agent项目所在位置:
include ':app',':libs:agent'
  • 在app/build.gradle中添加:
dependencies {
    implementation project(':libs:agent')
}

配置好后,我们能看到libs文件夹和agent文件夹都多了个标识,并且多了一个libs.iml文件:
在这里插入图片描述

添加Module Dependency

在写好配置文件后,还需要进入Project Structure添加Module Dependency:(名为agent和libs的Module是自动生成的)
在这里插入图片描述
在这里插入图片描述

生成文件路径

在配置好文件后,agent的原Activity文件会失效:
在这里插入图片描述
这时候我们只需要在该路径下再新建一个Activity文件,IDEA就会帮我们自动生成一个可使用的路径:
在这里插入图片描述
在这里插入图片描述
之后我们只需要把agent的项目文件放到这个src和res路径下即可。
若出现Unable to resolve dependency错误,则看下是否在agent/build.gradle文件里是否被自动添加了依赖管理。可以选择注释掉,或者改为:

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
}

在这里插入图片描述

测试

在demo1/app路径下的文件试着导入agent项目里的文件:
在这里插入图片描述
测试成功!

添加依赖项目(失败案例)

在网上看到很多解决方法是直接在Project Structure里导入项目,但经测试行不通:
在demo2项目里导入agent:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在经过上述导入步骤后,能看到目录下多了agent项目,但在demo2的文件里仍然无法使用agent项目的文件。
在这里插入图片描述

参考:用Intellij IDEA开发Android依赖第三方库和工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值