将Android Studio项目作为模块导入

4

My Image

我想把一个安卓工程导入到另外一个安卓工程中。我在安卓工程中把它作为模块导入了进来,但是收到了一个“该工程已经存在于项目中”的信息。我已经成功地将消息工程导入到了安卓工程中。但是在添加依赖项时,没有显示此模块,请查看我所导入的图片,并告诉我如何添加消息模块的依赖项。

我已尝试过:

implementation project(':message')

但是出现了错误

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :message. Show Details Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :message.

Show Details Affected Modules: app

ERROR: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :message. Show Details Affected Modules: app

message库模块 还是 应用程序模块 - Jeel Vankhede
message是一个Android Studio项目,vcard和photoviewer是message项目的模块。现在我想将message Android Studio项目作为模块导入到另一个Android Studio项目中。 - Rover
1
在你的:app模块中使用它之前,你需要将它转换为库模块。 - Jeel Vankhede
我该如何将它转换为库? - Rover
2个回答

3
您应该有这样的结构:
   -rootApp
    |--build.gradle
    |--settings.gradle
    |--app
    |----build.gradle

    -rootMessage
    |--build.gradle
    |--settings.gradle
    |--vcard
    |----build.gradle

在项目中,您可以引用外部模块。

只需使用:

rootApp/settings.gradle中:

include ':app' 
include ':myExternalLib'
project(':myExternalLib').projectDir=new   File('/path-to-project/rootMessage/vcard')

在`app/build.gradle`文件中:
dependencies {
    implementation project(':myExternalLib')
}

请注意myExternalLib。
您需要使用库在其他项目内的路径,而不是项目的根目录。
在您的情况下,路径是rootMessage/vcard
此外,rootMessage/settings.gradle将不被读取,因为您正在使用rootApp项目。


我有一个问题。在这条消息中,有一个项目,而vcard是该项目的模块,现在我想在新项目中导入消息以及其模块。我已经尝试过将消息转换为库,但现在出现了Android清单合并错误。 - Rover
@PuneetKansal 请阅读答案。它解释了您可以使用另一个项目的模块/库,但您不能导入整个项目(根文件夹)。您可以同时导入vcard和其他模块,但无法导入整个message项目。 - Gabriele Mariotti

0

你在setting.gradle中添加了这个模块名吗?

例如:

第一件事情

include ':app', ':message', ':photoviewer', 'vcard'

第二件事

主要问题是您应用的插件是com.android.application而不是com.android.library

请写下以下行。

apply plugin: 'com.android.library'


是的,我已经添加了这个。Message是一个Android Studio项目,我想将这个项目作为模块导入到另一个项目中。而PhotoViewer是Message项目的一个模块。 - Rover
意思是,你想将这个作为 Android 应用程序的特色。 - Prince Dholakiya
没有,我找到了一个解决方案,会尝试实现。也许在导入之前,我需要将这个项目转换为库。 - Rover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接