android-studio - 无法解析 Android Studio 中的模块类

标签 android-studio gradle build.gradle

我有两个独立的Android项目A和B。我希望在A中使用B,但我不想将其复制到A中。我只想让它使用。

所以我将其添加到项目 A 的 settings.gradle 中:

include ':ProjectA', ':ProjectB'

project(':ProjectB').projectDir = new File('/dir/dir/ProjectB/')

同步 gradle 工作正常,但当我清理和重建时,项目 A 无法解析项目 B 中的任何符号。

因此,我在未解析的符号上按 Alt-Enter 并单击“添加对模块项目 B 的依赖项”,然后将以下内容添加到项目 A 的 gradle.build 文件中:

compile project(path: ':ProjectB')

但是 clean+build 也不起作用。

我尝试更改为

compile project(path: ':ProjectB', configuration: 'default')

implementation project(path: ':ProjectB')

但它们也不起作用。有什么想法吗?

使用 gradle 3.1.2、Android 3.1.2。 Ubuntu 16.04 LTS。

输出

ProjectA/build.gradle   
Unable to resolve dependency for ':ProjectA@debug/compileClasspath': Could not resolve project :ProjectB.   
Unable to resolve dependency for ':ProjectA@debugAndroidTest/compileClasspath': Could not resolve project :ProjectB.    
Unable to resolve dependency for ':ProjectA@debugUnitTest/compileClasspath': Could not resolve project :ProjectB.   
Unable to resolve dependency for ':ProjectA@release/compileClasspath': Could not resolve project :ProjectB. 
Unable to resolve dependency for ':ProjectA@releaseUnitTest/compileClasspath': Could not resolve project :ProjectB. 

最佳答案

又是一场噩梦。我解决这个问题的唯一方法如下,我相信这是正确的方法。

创建一个 Android 库(不是 Java 库,否则您无法使用 Android 功能),然后加载您的库类/文件,并使用适当的实现语句(即依赖项)设置您的 gradle。但这里需要小心,因为 Android Studio (AS) 在同一个项目中创建“app”和“library”模块。因此,请确保将库类放入正确的模块中,否则它不会生成 AAR 文件(与 JAR 相对)文件供您在外部其他地方包含。构建项目后,您将在 build/outputs/aar 目录中找到 AAR 文件。

好的,现在您可以创建单独的应用程序,并使用 AAR 文件作为依赖项。创建新的主项目后,转到项目结构并单击左侧的 + 以添加新模块。从菜单中选择“导入 JAR/AAR”,然后将选择器定向到上述 build 文件夹中的 AAR 文件。单击“确定”返回主窗口。然后选择主应用程序模块,然后单击“依赖项”选项卡并单击 + 添加模块。从列表中选择 AAR 模块,然后单击“确定”退出。

系统现在应该能够识别您的类并且没有 undefined symbol 。这工作得很好,我非常喜欢它,因为它使用了一个漂亮的紧凑的 AAR 文件。

关于android-studio - 无法解析 Android Studio 中的模块类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50295979/

相关文章:

maven - 锁定Gradle以仅在CI构建期间使用我们的内部存储库

gradle - 如何将自定义任务用作工件

intellij-idea - 使用Gradle时如何使IDEA/Android Studio识别我的单元测试文件夹?

java - 如何在android studio中添加和使用外部Java源文件夹

Android Studio 没有显示任何错误?

java - 使用 Zxing 条形码的 1 个 Activity 的多个 onActivityResult

java - 带有 java 平台插件的父 gradle 模块

android - 如何在android studio中打开android文档和代码示例

安卓库 : Class file not found when "implementation project" is used for module dependency of a library

java - Gradle 6 : get the list of implementation dependencies programmatically