使用Clojure进行Android应用开发

时间:2015-11-08 11:23:01

标签: android emacs clojure

我是lein-droid的新手,我正在尝试this tutorial

我已按照教程中设置的步骤进行操作,现在我遇到了两个问题:

  1. 将我的Android智能手机连接到笔记本电脑并在终端中运行lein droid doall后,我的手机中没有发现任何事情,我也看不到任何nREPL被打开。

  2. 在emacs中执行M-x cider后,为主机输入“本地计算机”是什么意思?我应该输入“localmachine”这个词还是我的笔记本电脑或智能手机的名字?我不能为此目的运行M-x cider-jack-in吗?

  3. @Mark Fischer更新我的问题(这是我尝试过的一步一步(我有一个32位的Ubuntu 14.04 LTS操作系统)):

    1. here下载了针对linux的android-sdk_r24.3.4-linux.tgz,解压缩并运行二进制android文件,安装SDK version >=15 (Android 4.0.3 or higher)Android Build Tools version >=20,{{ 1}}来自经理。
    2. 因为我在Emacs上使用CIDER,所以我把

      Android Support Repository

      在我的〜/ .lein / profiles.clj中作为教程中的习惯。

    3. 我创建了一个带有:android-user {:dependencies [[cider/cider-nrepl "0.8.1"]] :android {:aot-exclude-ns ["cider.nrepl.middleware.util.java.parser" "cider.nrepl" "cider-nrepl.plugin"]}} {:user {:plugins [ [lein-droid "0.4.0-alpha4"] ] }} 的新项目(从教程中复制粘贴)并定义了android包的路径(android-sdk-linux)我从android网站上下载并解压缩到{{ 1}}。我还将lein new droid superapp my.company.superapp :activity MyActivity :target-sdk 15 :app-name SuperApp中的project.clj版本:依赖项更改为neko,如教程中所述。

    4. 我将华为智能手机连接到笔记本电脑,并在终端运行中(首先在主目录中)project.clj,我明白了:

      "4.0.0-alpha1"

      ,然后我在supperapp目录中尝试,得到这个通知:

      lein droid doall
    5. 所以第一个问题就出现了。我打开sdk管理器,'droid' is not a task. See 'lein help'. Did you mean this? do 被标记为已安装。我现在该怎么办?

1 个答案:

答案 0 :(得分:2)

您是否阅读过lein droid Tutorial?在connecting to the REPL上有一节更好地描述了“本地机器”,它只是“本地主机”。

命令lein droid doall正在创建一个与您的设备进行通信的neko nrepl服务器。它默认在本地开发机器(localhost)端口9999上创建一个默认端口,因此您应该告诉Cider连接到该端口。

在该网站上有一些建议要检查9999端口是否使用netstat打开,并查看logcat日志中是否正在创建它,还有更多选项来调试问题。