- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在 Clojure
中使用 Android Studio
中的 Cursive
插件进行 Android 开发。我看过几篇帖子,其中有人说这是可能的,但我无法让它发挥作用。
当我尝试构建时,我在尝试从 Java 调用 Clojure 时收到错误报告:
Error:(6, 18) error: package com.domain does not exist
Error:(15, 49) error: cannot find symbol variable tiny
这是我尝试过的:
我已经使用 leiningen
在 IntelliJ
中运行 Cursive
,构建并运行独立的 Clojure 应用
启动 Android Studio,版本 1.5.1
创建一个新的 Android 项目。选定的 API 级别 15,空 Activity
按照这篇文章安装 Cursive 插件: Is it possible to get the Cursive Plugin installed with Android Studio?
将 clojure jar 添加到类路径:打开模块设置、依赖项、+库依赖项,搜索并选择 org.clojure:clojure:1.8.0-RC5
从Android
View 切换到Project
View ,创建Clojure src目录:选择app/src/main
并新建目录 clojure
下一步是创建一个 Clojure
源文件,它可以从 Java 调用,使用本文中的示例:Calling clojure from java
选择src目录clojure
,右击New
Clojure Namespace
输入:com.domain.tiny
(以匹配示例中使用的 ns)
将上面示例中的代码粘贴到新文件中(请注意,新文件中的 ns tiny
应该是 com.domain.tiny
)
它会说文件 tiny.clj 不在源根目录下
所以点击添加源根目录
。现在我们将 src/java
和 src/clojure
设置为 src root
构建项目。此时看起来一切顺利,Java 或 Clojure 代码中都没有语法错误。我们可以部署和运行(几乎)空的 Android 项目,并运行本地 REPL 来加载和测试我们的 Clojure 代码。
我们想从 Java 调用一些 Clojure 代码,因此将以下代码添加到 MainActivity
(同样来自上面的示例):
System.out.println("(binomial 5 3): " + tiny.binomial(5, 3));
System.out.println("(binomial 10042, 111): " + tiny.binomial(10042, 111));
Android Studio 可以找到包com.domain.tiny
和tiny
类,没有语法错误,看起来不错
现在尝试构建项目 - 此时出现错误:
Error:(6, 18) error: package com.domain does not exist
Error:(15, 49) error: cannot find symbol variable tiny
此时,我卡住了。我猜即使编译器看到 Clojure 代码正常,构建过程中仍然缺少一些东西。 leiningen
需要参与吗?如果是这样,我不知道如何,或者我可能必须在 project.clj
配置文件中放入什么。
有人有什么想法吗?谢谢!
最佳答案
编辑:
这似乎现在是不可能的。这是因为 Android Studio 要求项目使用 Gradle,而 Clojure Gradle 插件与 Android 不兼容。这在未来可能会奏效,但我们现在无法让它奏效。
原始答案:
感谢您的详细问题。我想你的 Clojure 代码必须经过 AOT 编译才能工作。要启用此功能,请检查 Settings->Build, Execution, Deployment->Compiler->Clojure Compiler 下的设置。如果您为 Clojure namespace 启用编译,这有帮助吗?
关于android - 如何在 Android Studio 中使用 Cursive 构建 Android 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778119/
通常,我在vim中工作,然后将SSH切换到服务器(执行Web开发)以编辑代码,然后运行开发服务器等。我试图将Intellij IDEA与Cursive插件一起用于Clojure,这对复制相同类型的样式
我正在尝试开发一种算法来读取草书笔迹(准确地说是医生的笔迹)。我不需要匹配每个字母,只需匹配可识别的字母(我使用字典方法)。 现在,我在 BufferedImage 类中拥有二值化图像。接下来我需要做
有时我尝试在 IntelliJ 中运行 Clojure 程序,但出现以下错误: (.deleteOnExit (java.io.File. "/home/matan.bl/.IdeaIC15/syst
总的来说,我对 Cursive 和 Clojure 不熟悉,在获得像样的 TDD 工作流程时遇到了一些困难。 我的问题是后续测试运行取决于 REPL 中的状态。例如,假设您有以下代码。 (def sa
只是如何初始化一个新项目?如何编译、测试和运行? 自 cursive user guide对 cljs 一无所知。 最佳答案 从命令行使用 boot 或 leiningen(也称为 lein)来设置您
我用 Cursive在 IDEA 社区版中。它将所有括号显示为黑色,这会导致眼睛无法捕捉到表情的边缘。 Cursive 是否支持彩虹括号? 如果是,如何启用它? 最佳答案 通过 Idea -> Pre
我正在使用 IntelliJ/Cursive 编写 Clojure。 我发现删除括号的唯一方法是完全删除其中的内容,然后才能删除括号。 例如,假设我有以下代码: (list) 我只想删除左括号。一旦我
我正在尝试通过使用 expo 制作一个 react native 应用程序的原型(prototype)来开始学习 cljs。我用 Leiningen 模板“lein new expo”建立了一个项目。
我正在尝试为 将 Cursive 插件安装到 WebStorm 9 ClojureScript .但是,该插件不会显示在“设置”->“插件”菜单中的“浏览存储库”选项卡上。 我尝试通过从 here 下
我正在尝试在 IntelliJ\Cursive 中运行一个简短的 Clojure 程序。 我的程序包括两个文件: project.clj: (defproject try3 "0.1.0-SNAPSH
我最近安装了 IntelliJ IDEA 的 Cursive 插件。首次启动时,会弹出窗口询问是否应下载 ClojureDocs 示例: 我错误地点击了“不要再问我”,而不是“下载”。这只发生在插件第
我目前正在开始我的第一个项目,该项目将使用 Clojure 使用 Android Studio 编写 Android 应用程序。 我的想法是安装 Cursive Plugin因为此插件可用于 Andr
我是 Emacs/cider 的 Clojure 开发新手。我找不到创建 live templates 的方法在 Cider 中,就像在 IntelliJ IDEA(草书插件)中一样。 最佳答案 ya
当尝试在 Ubuntu 20.04 上运行脚本(在下面的最小工作示例中给出)时,它使用 matplotlib 中的草书字体,我收到了 matplotlib 警告: findfont: Font fam
我希望能够将当前表达式发送到 REPL 以在 Cursive Clojure 中进行评估。我可以在emacs中做到这一点。有人知道在 Cursive Clojure 中执行此操作的键盘快捷键是什么吗?
我想知道为什么它在 chrome 移动浏览器 v47(最新的 atm)中不起作用,因为它在桌面浏览器上完美运行,包括开发人员工具中的不同移动设备模式。 是否存在解决方法?至少,我可以找到下载的原始名称
我将一个 Leiningen 项目导入到 Intellij 中,与一些现有的 Java 和 Scala 模块放在一起。我想从我的 Clojure 模块调用这些模块的函数,但我不确定如何定义这种依赖关系
我正在试用 Cursive,这是一个基于 IntelliJ 的 Clojure IDE。 Leiningen 控制台工作,但打印“找不到路径”错误。 我似乎无法弄清楚它找不到什么。不过,莱宁根似乎正在
我想在 Clojure 中使用 Android Studio 中的 Cursive 插件进行 Android 开发。我看过几篇帖子,其中有人说这是可能的,但我无法让它发挥作用。 当我尝试构建时,我在尝
我是一名优秀的程序员,十分优秀!