sbt-android:IntelliJ 将 android 支持资源的使用情况标记为红色

Posted

技术标签:

【中文标题】sbt-android:IntelliJ 将 android 支持资源的使用情况标记为红色【英文标题】:sbt-android: IntelliJ marks usages of android support resources red 【发布时间】:2017-01-15 05:31:18 【问题描述】:

我正在使用 sbt-android 插件通过 Scala 和 SBT 开发 Android 应用程序。

我用示例代码编写了一个小项目,运行良好。

但是 IntelliJ 将所有指向库资源的“指针”标记为红色 - 所以我可以定义它们,但不能使用它们。

它说,例如: '找不到符号 Theme.AppCompat'.

这里有一些图片:

这是我的 build.sbt:

name := "Scalandroid"

import android.Keys._
import android.Dependencies.apklib,aar

androidBuild

javacOptions ++= Seq("-source", "1.7", "-target", "1.7")

scalaVersion := "2.11.7"

resolvers += "Bugsense repository" at "http://www.bugsense.com/gradle/"

libraryDependencies ++= Seq(
  aar("com.android.support" %  "appcompat-v7" % "24.2.0"),
  aar("com.android.support" %  "cardview-v7" % "24.2.0"),
  aar("com.android.support" % "support-v4" % "24.2.0"),
  aar("com.android.support" % "design" % "24.2.0"),
  aar("com.android.support" % "recyclerview-v7" % "24.2.0")
)

scalacOptions in Compile += "-feature"

compileOrder := CompileOrder.JavaThenScala

compileOrder in Android := CompileOrder.JavaThenScala

proguardOptions in Android ++= Seq("-dontobfuscate", "-dontoptimize",  "-      keepattributes Signature", "-printseeds target/seeds.txt", "- printusage    target/usage.txt"
   , "-dontwarn scala.collection.**" // required from Scala 2.11.4
)


run <<= run in Android
install <<= install in Android

proguardScala in Android := true

useProguard in Android := true


// Tests //////////////////////////////

libraryDependencies ++= Seq(
  "org.apache.maven" % "maven-ant-tasks" % "2.1.3" % "test",
  "org.robolectric" % "robolectric" % "3.0" % "test",
  "junit" % "junit" % "4.12" % "test",
  "com.novocode" % "junit-interface" % "0.11" % "test"
)

// without this, @Config throws an exception,
unmanagedClasspath in Test ++= (bootClasspath in Android).value

这是我的项目/plugins.sbt:

addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.16")
addSbtPlugin("org.scala-android" % "sbt-android-protify" % "1.3.2")

libraryDependencies += "net.sf.proguard" % "proguard-base" % "5.2.1"

【问题讨论】:

【参考方案1】:

这是 Intellij 中的一个已知问题

您可以切换到 IDEA 中的 nightly scala 插件或download this file 并替换您的本地副本

【讨论】:

以上是关于sbt-android:IntelliJ 将 android 支持资源的使用情况标记为红色的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ添加Emacs编辑器

intellij idea 中的out怎么用重新生成

想了解 Kotlin 和 IntelliJ IDEA 吗? 两位创始大神来给你解读!

IntelliJ Cannot find declaration to goto----解决方案

如何在IntelliJ IDEA中检索maven依赖jar包的源码

IntelliJ IDEA平台下JNI编程—HelloWorld篇