のプラグインClojureを使用して、でAndroid 開発を行いたいと考えています。人々がそれが可能であると述べているいくつかの投稿を見てきましたが、私はそれを機能させることができませんでした.CursiveAndroid Studio
ビルドしようとすると、Java から Clojure を呼び出そうとするとエラーが報告されます。
Error:(6, 18) error: package com.domain does not exist
Error:(15, 49) error: cannot find symbol variable tiny
これが私が試したことです:
私はすでに、スタンドアロンの Clojure アプリをビルドして
Cursive実行しIntelliJています。leiningenAndroid Studio バージョン 1.5.1 を起動します。
新しい Android プロジェクトを作成します。選択された API レベル 15、空のアクティビティ
この投稿に従って Cursive プラグインをインストールします: Is it possible to get the Cursive Plugin installed with Android Studio?
clojure jar をクラスパスに追加: モジュール設定、依存関係、+ ライブラリ依存関係を開き、検索して選択します。
org.clojure:clojure:1.8.0-RC5ビューから
Androidビューに切り替えてProject、Clojure src ディレクトリを作成します。app/src/main新しいディレクトリを選択して作成しますclojure次のステップは
Clojure、この投稿の例を使用して、Java から呼び出すことができるソース ファイルを作成することです: Java から clojure を呼び出すsrc directory を選択
clojureし、右クリックして次のNewClojure Namespaceように入力します:com.domain.tiny(例で使用されている ns と一致させるため)上記の例のコードを新しいファイルに貼り付けます (新しいファイルの ns は で
tinyあり、そうあるべきだったことに注意してくださいcom.domain.tiny) 。と表示されます
File tiny.clj is not under a source rootので、 をクリックしAdd source rootます。これで、両方がsrc/javaありsrc/clojure、src ルートとして設定されましたプロジェクトをビルドします。この時点で、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));com.domain.tinyAndroid Studio はパッケージとクラスを見つけることができ、tiny構文エラーはなく、見栄えが良いプロジェクトをビルドしてみてください。この時点でエラーが発生します。
Error:(6, 18) error: package com.domain does not exist Error:(15, 49) error: cannot find symbol variable tiny
この時点で、私は立ち往生しています。コンパイラが Clojure コードを正常に認識していても、ビルド プロセスにはまだ何かが欠けていると思います。leiningen関与する必要はありますか?もしそうなら、私はどのように、またはproject.clj構成ファイルに何を入れなければならないのかわかりません。
誰にもアイデアはありますか?ありがとう!