Ensime + sbt: "Android SDK не найден" - PullRequest
       15

Ensime + sbt: "Android SDK не найден"

3 голосов
/ 07 сентября 2011

Я пытаюсь использовать Ensime для работы с проектом adnroid, созданным с помощью g8 (https://github.com/philcali/android-plugin)., подписался на этот вопрос Я добавил android.jar в свой файл .ensime. Вот оно:

(:project-package "org.test"
:use-sbt t
:compile-jars ("~/_dev/_android/android-sdk-linux_x86/platforms/android-8/android.jar"))

Также у меня есть экспортированная ANDROID_SDK_HOME переменная в моем ~ / .bashrc файле . Но когда я пытаюсь запустить ensime, я получаю эту ошибку:

java.lang.RuntimeException: Android SDK not found. You might need to set ANDROID_SDK_HOME or ANDROID_SDK_ROOT or ANDROID_HOME
    at scala.Predef$.error(Predef.scala:58)
    at AndroidPath$$anonfun$settings$8$$anonfun$apply$1.apply(AndroidPath.scala:21)
    at AndroidPath$$anonfun$settings$8$$anonfun$apply$1.apply(AndroidPath.scala:21)
    at scala.Option.getOrElse(Option.scala:104)
    at AndroidPath$$anonfun$settings$8.apply(AndroidPath.scala:21)
    at AndroidPath$$anonfun$settings$8.apply(AndroidPath.scala:20)
    at sbt.Scoped$Apply$$anonfun$single$1.apply(Structure.scala:444)
    at sbt.Scoped$Apply$$anonfun$single$1.apply(Structure.scala:444)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:44)
    at sbt.Init$Apply.get(Settings.scala:223)
    at sbt.Init$class.sbt$Init$$applySetting(Settings.scala:144)
    at sbt.Init$$anonfun$compile$1$$anonfun$3$$anonfun$apply$2.apply(Settings.scala:100)
    at sbt.Init$$anonfun$compile$1$$anonfun$3$$anonfun$apply$2.apply(Settings.scala:100)
    at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:123)
    at scala.collection.immutable.List.foldLeft(List.scala:45)
    at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:139)
    at scala.collection.immutable.List.$div$colon(List.scala:45)
    at sbt.Init$$anonfun$compile$1$$anonfun$3.apply(Settings.scala:100)
    at sbt.Init$$anonfun$compile$1$$anonfun$3.apply(Settings.scala:100)
    at sbt.Init$$anonfun$sbt$Init$$applyInits$1.apply(Settings.scala:140)
    at sbt.Init$$anonfun$sbt$Init$$applyInits$1.apply(Settings.scala:140)
    at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:123)
    at scala.collection.immutable.List.foldLeft(List.scala:45)
    at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:139)
    at scala.collection.immutable.List.$div$colon(List.scala:45)
    at sbt.Init$class.sbt$Init$$applyInits(Settings.scala:140)
    at sbt.Init$class.make(Settings.scala:92)
    at sbt.Project$.make(Project.scala:102)
    at sbt.Project$$anonfun$makeSettings$1.apply(Project.scala:177)
    at sbt.Project$$anonfun$makeSettings$1.apply(Project.scala:177)
    at sbt.Project$.translateCyclic(Project.scala:218)
    at sbt.Project$.makeSettings(Project.scala:177)
    at sbt.Load$.apply(Load.scala:120)
    at sbt.Load$.defaultLoad(Load.scala:36)
    at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:371)
    at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:368)
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:61)
    at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:61)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:63)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:63)
    at sbt.Command$.process(Command.scala:91)
    at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(Main.scala:66)
    at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(Main.scala:66)
    at sbt.State$$anon$1.process(State.scala:59)
    at sbt.MainLoop$$anonfun$next$1.apply(Main.scala:66)
    at sbt.MainLoop$$anonfun$next$1.apply(Main.scala:66)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:13)
    at sbt.MainLoop$.next(Main.scala:66)
    at sbt.MainLoop$.run(Main.scala:61)
    at sbt.xMain.run(Main.scala:33)
    at xsbt.boot.Launch$.run(Launch.scala:54)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
    at xsbt.boot.Launch$.launch(Launch.scala:68)
    at xsbt.boot.Launch$.apply(Launch.scala:14)
    at xsbt.boot.Boot$.runImpl(Boot.scala:24)
    at xsbt.boot.Boot$.main(Boot.scala:15)
    at xsbt.boot.Boot.main(Boot.scala)

Я не мог понять причину, почему это происходит. У кого-нибудь есть мысли по этому поводу? Спасибо.

1 Ответ

2 голосов
/ 08 сентября 2011

Решение найдено!Ответ здесь: https://github.com/aemoncannon/ensime/issues/184#issuecomment-2038002:

Переменные среды в .bashrc действительны только для программ, запущенных или запущенных из bash, в противном случае вам понадобится .profile.Если вы используете emacs: вы можете использовать Mx getenv, чтобы увидеть, может ли emacs видеть переменную окружения.Используйте (setenv "ANDROID_SDK_HOME" "~ / _dev / _android / android-sdk-linux_x86 /") в вашем .emacs, чтобы установить его для каждого сеанса emacs.Но вы, наверное, уже знаете это, поэтому я не знаю, поможет ли это вообще.Иногда кажется, что Emacs сложно настроить в отношении переменных среды.

Благодаря zilti !

...