van*_*tae 6 java gradle android-studio build.gradle
我有一个 android 项目,其中 :app 模块使用 java 库模块 :core ,其中包含业务逻辑,但没有 android 代码。:core 模块依赖于一个 java 库(在我的例子中是 Smack),我使用 gradle 的复合构建功能(includeBuild)来替换它。
构建和运行应用程序(通过 AS 以及仅使用 gradle)就像一个魅力,但是 Android Studio 抱怨在 :core 模块中找不到 Smack 类。因此,当在 :core 模块中编码时,我没有自动完成功能,并且 IDE 中没有很多警告。将鼠标悬停在 Smack 导入上会产生错误消息“无法解析符号”。但是,可以从 :app 模块解决依赖关系。
AS 建议添加对 Smack 的项目依赖,但这会导致 gradle 无法再解析它。到目前为止,这也不是我理解复合构建的方式。
我怀疑 AS 以某种方式将 Smack 误认为是 Android 库,因此它只让 :app 模块解析它。这个理论的论据是,如果我将 :core 更改为 android 库,解析将按预期工作。
如果我在 Intellij 中构建类似的设置(没有 android 部分),一切都会按预期工作。
我已经尝试在 Android Studio 中使用不同的 gradle 和 gradle 插件版本,但到目前为止还没有成功。使缓存无效和删除 .AndroidStudioX.X 目录也没有帮助。现在我正在运行 AS 3.6.3。
我也已经尝试过手动替换,如此处所述。
您可以在此处找到重现该问题的最小(非)工作示例。
非常欢迎任何帮助:)
编辑:相关 Android Studio 错误跟踪票证:https://issuetracker.google.com/issues/155690726
编辑:作为一种解决方法,我目前使用的是 Android Studio 3.5.3,它不会遇到此问题。
| 归档时间: |
|
| 查看次数: |
736 次 |
| 最近记录: |