我有两个独立的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/