简体   繁体   中英

sublime-ensime for scala not finding android packages

Ensime is not finding the android packages and gives errors such as:

object android is not a member of package <root>

I'm using sbt and sublime-ensime on OS X with Java 1.6 to try out a simple android demo project. I'm aware of some similar issues for example this and this , but the solutions for those haven't worked for me.

The project was created from the template like so:

g8 jberkel/android-app

I have generated the .ensime file (below) using

ensime generate

Despite all the project dependencies apparently being listed, ensime still cannot find the android classes. However, sbt compiles the project with no problems.

Here is the somewhat lengthy .ensime file - I have also tried stripping this down to the basics, but with no success.

(:subprojects
((:runtime-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes")
:module-name
"android-essentials"
:compile-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar")
:version
"0.1"
:test-target
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/test-classes"
:name
"Android Essentials"
:depends-on-modules
()
:package
"android-essentials"
:target
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
:source-roots
("/Users/george/Source/Projects/android-essentials/src/main/scala"
"/Users/george/Source/Projects/android-essentials/src/main/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/main/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/main/scala"
"/Users/george/Source/Projects/android-essentials/src/test/scala"
"/Users/george/Source/Projects/android-essentials/src/test/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/test")
:test-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/.ivy2/cache/org.scalatest/scalatest_2.10.0-RC5/jars/scalatest_2.10.0-RC5-2.0.M5-B1.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/test-classes"))
(:runtime-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes")
:module-name
"android-essentials-tests"
:compile-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes")
:version
"0.1"
:test-target
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/test-classes"
:name
"Android Essentials Tests"
:depends-on-modules
("android-essentials")
:package
"android-essentials-tests"
:target
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
:source-roots
("/Users/george/Source/Projects/android-essentials/tests/src/main/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/main/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/main/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/main/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/test/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/test/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/test")
:test-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/test-classes"))))

Here is the relevant part of the ensime server.log

Is there a problem with my configuration, or is there something wrong with Ensime / Sublime?

It seems that this problem is related to how ensime uses the .ensime file being generated by the sbt ensime-sbt-cmd plugin.

I worked around it by refactoring my .ensime file so that it doesn't have any sub-projects.

For example, my original .ensime file above now looks like this:

(:name
"Android Essentials"
:module-name
"android-essentials"
:version
"0.1"
:package
"droid.essentials"
:runtime-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-reflect.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
"/Users/george/.ivy2/cache/com.google.android/support-v4/jars/support-v4-r7.jar"
"/Users/george/.ivy2/cache/io.spray/spray-json_2.10.0-RC5/jars/spray-json_2.10.0-RC5-1.2.3.jar")
:compile-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-reflect.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/.ivy2/cache/com.google.android/support-v4/jars/support-v4-r7.jar"
"/Users/george/.ivy2/cache/io.spray/spray-json_2.10.0-RC5/jars/spray-json_2.10.0-RC5-1.2.3.jar")
:target
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
:test-target
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/test-classes"
:source-roots
("/Users/george/Source/Projects/android-essentials/src/main/scala"
"/Users/george/Source/Projects/android-essentials/src/main/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/main/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/main/scala"
"/Users/george/Source/Projects/android-essentials/src/test/scala"
"/Users/george/Source/Projects/android-essentials/src/test/java"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/src_managed/test"
"/Users/george/Source/Projects/android-essentials/tests/src/main/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/main/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/main/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/main/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/test/scala"
"/Users/george/Source/Projects/android-essentials/tests/src/test/java"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/src_managed/test")
:test-deps
("/usr/local/android-sdk/platforms/android-14/android.jar"
"/Users/george/.ivy2/cache/com.google.android/support-v4/jars/support-v4-r7.jar"
"/Users/george/.ivy2/cache/io.spray/spray-json_2.10.0-RC5/jars/spray-json_2.10.0-RC5-1.2.3.jar" 
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-library.jar"
"/Users/george/.sbt/boot/scala-2.10.0-RC2/lib/scala-reflect.jar"
"/Users/george/.ivy2/cache/org.scalatest/scalatest_2.10.0-RC5/jars/scalatest_2.10.0-RC5-2.0.M5-B1.jar"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/test-classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/target/scala-2.10/classes"
"/Users/george/Source/Projects/android-essentials/tests/target/scala-2.10/test-classes"))

This issue is being investigated further here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM