android - IntelliJ 无法解析 SBT(多)项目中的资源和 AndroidManifest.xml

标签 android intellij-idea sbt android-sdk-plugin

自从我将 Android 项目从 Gradle 迁移到 SBT,我就无法有效地使用资源:

  • XML 资源中的每个符号(例如 @string/app_name)都以红色突出显示并显示错误消息(例如 Cannot resolve '@string/app_name' symbol),
  • 布局编辑器无法工作,因为布局中的所有变量都未解析,所以我无法有效地编辑它们,

此外,IDE 报告缺少 AndroidManifest.xml,因此我无法从 IDE 中运行应用程序,因为我无法配置任何运行配置。 list 和资源的自动重构,例如更改 Activity 类名称也失败。

但是,所有资源和 list 都在它们的位置上。如图所示,切面也已正确设置:

errors shown by IDE

我已经尝试过但没有奏效的:

  • 编辑分面 - 所有分面都已正确设置,
  • 使缓存失效并重新启动 IntelliJ,
  • 删除 .idea 目录并使用 SBT 插件重新导入项目,
  • 像在 Gradle 中一样同步项目 - SBT 没有这样的选项,我最好的办法就是刷新构建。

通常我会怀疑构建由于某种原因无法正常工作,但是:

  • sbt clean app/android:run 从头开始​​正确构建应用程序并加载到模拟设备中,它按预期工作,
  • IDE 中的方面已正确设置,所有依赖项均已正确识别,项目已正确设置。

我可以尝试如何诊断/解决问题?

最佳答案

在 IDE 中禁用源代码生成。

来自aar的资源在本地xml资源中没有解析,这是目前IDEA sbt项目导入支持的一个限制

关于android - IntelliJ 无法解析 SBT(多)项目中的资源和 AndroidManifest.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623626/

相关文章:

java - java字符串中的立方根符号

maven - 如何避免 IntelliJ IDEA 中出现 "The package is not exported by the bundle dependencies"错误?

java - 使用FileEntity时是否有通用的文​​件内容类型

java - MediaPlayer isPlaying() 总是返回 false

grails - Intellij使用 “mvn grails:exec”而不是原始grails命令

linux - 如何让 sbt 使用我本地存储库中的 jar?

scala - 如何在自定义 sbt 命令中设置 javaOptions

Scala 网站 : create routes

android - 如何解决错误 FAILURE : Build failed with an exception. * 其中:脚本 'C:\flutter\packages\flutter_tools\gradle\flutter.gradle' 行:1005

android - Idea Intellij 截图