clojure-android / lein-droid

A Leiningen plugin for building Clojure/Android projects
Eclipse Public License 1.0
645 stars 56 forks source link

Can't build the sample project #75

Closed frankiesardo closed 10 years ago

frankiesardo commented 10 years ago

Hi, I'm very interested in the project, but I can't seem to build even the sample application. If I do execute lein droid new clojuroid org.stuff.clojuroid :activity MyActivity :target-sdk 17 :app-name ClojureMeetsAndroid and then lein droid doall I get:

Generating R.java...
Retrieving neko/neko/3.0.0/neko-3.0.0.pom from clojars
Retrieving compliment/compliment/0.0.3/compliment-0.0.3.pom from clojars
Retrieving neko/neko/3.0.0/neko-3.0.0.jar from clojars
Retrieving compliment/compliment/0.0.3/compliment-0.0.3.jar from clojars
Compiling 2 source files to /Users/frankie/Desktop/clojuroid/target/classes
Reflection warning, cljs/closure.clj:116:17 - call to java.util.zip.ZipFile ctor can't be resolved.
Reflection warning, cljs/closure.clj:117:18 - reference to field getName can't be resolved.
Reflection warning, cljs/closure.clj:128:23 - call to startsWith can't be resolved.
Reflection warning, cljs/closure.clj:129:23 - call to endsWith can't be resolved.
Reflection warning, cljs/closure.clj:137:39 - reference to field getName can't be resolved.
Reflection warning, cljs/closure.clj:137:28 - call to endsWith can't be resolved.
Reflection warning, cljs/closure.clj:143:28 - call to endsWith can't be resolved.
Reflection warning, cljs/closure.clj:181:41 - reference to field getFile can't be resolved.
Reflection warning, cljs/closure.clj:231:1 - reference to field url can't be resolved.
Reflection warning, cljs/closure.clj:231:1 - reference to field foreign_QMARK_ can't be resolved.
Reflection warning, cljs/closure.clj:231:1 - reference to field source can't be resolved.
Reflection warning, cljs/closure.clj:231:1 - reference to field requires can't be resolved.
Reflection warning, cljs/closure.clj:231:1 - reference to field provides can't be resolved.
Reflection warning, cljs/closure.clj:240:1 - reference to field source_map can't be resolved.
Reflection warning, cljs/closure.clj:240:1 - reference to field source_url can't be resolved.
Reflection warning, cljs/closure.clj:371:14 - reference to field getAbsolutePath can't be resolved.
Reflection warning, cljs/closure.clj:537:33 - call to substring can't be resolved.
Reflection warning, cljs/closure.clj:543:19 - call to startsWith can't be resolved.
Reflection warning, cljs/closure.clj:708:16 - call to compile can't be resolved.
Reflection warning, cljs/closure.clj:915:70 - call to findResources can't be resolved.
Reflection warning, cljs/repl.clj:21:1 - reference to field setup can't be resolved.
Reflection warning, cljs/repl.clj:21:1 - reference to field tear_down can't be resolved.
Reflection warning, cljs/repl.clj:160:22 - call to java.io.File ctor can't be resolved.
Reflection warning, cljs/repl.clj:162:40 - reference to field getAbsolutePath can't be resolved.
Reflection warning, cljs/repl.clj:162:40 - reference to field getAbsolutePath can't be resolved.
Reflection warning, cemerick/austin.clj:49:3 - call to stop can't be resolved.
Reflection warning, cemerick/austin.clj:71:3 - reference to field getAddress can't be resolved.
Reflection warning, cemerick/austin.clj:71:3 - reference to field getPort can't be resolved.
Reflection warning, cemerick/austin.clj:76:14 - call to getBytes can't be resolved.
Reflection warning, cemerick/austin.clj:81:28 - call to write can't be resolved.
Reflection warning, cemerick/austin.clj:167:47 - reference to field getRequestHeaders can't be resolved.
Reflection warning, cemerick/austin.clj:190:21 - call to endsWith can't be resolved.
Reflection warning, cemerick/austin.clj:416:23 - call to exec can't be resolved.
Reflection warning, cemerick/austin.clj:426:5 - reference to field destroy can't be resolved.
Reflection warning, clojure/tools/nrepl/bencode.clj:152:19 - reference to field byteValue can't be resolved.
Reflection warning, clojure/tools/nrepl/bencode.clj:152:5 - call to valueOf can't be resolved.
Reflection warning, clojure/tools/nrepl/misc.clj:17:20 - reference to field printStackTrace can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/interruptible_eval.clj:104:3 - call to java.util.concurrent.ThreadPoolExecutor ctor can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/interruptible_eval.clj:128:13 - call to execute can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/interruptible_eval.clj:146:13 - call to execute can't be resolved.
Reflection warning, clojure/tools/nrepl.clj:185:14 - reference to field getPort can't be resolved.
Reflection warning, clojure/tools/nrepl.clj:186:19 - reference to field getHost can't be resolved.
Reflection warning, clojure/tools/nrepl.clj:190:36 - reference to field getScheme can't be resolved.
Reflection warning, clojure/tools/nrepl.clj:190:36 - reference to field toLowerCase can't be resolved.
Reflection warning, clojure/tools/nrepl/ack.clj:47:3 - reference to field close can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/session.clj:37:54 - call to append can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/session.clj:38:33 - call to append can't be resolved.
Reflection warning, clojure/tools/nrepl/middleware/session.clj:182:52 - call to write can't be resolved.
Reflection warning, clojure/tools/nrepl/server.clj:33:17 - reference to field close can't be resolved.
Reflection warning, clojure/tools/nrepl/server.clj:85:28 - call to java.net.InetSocketAddress ctor can't be resolved.
Exception in thread "main" java.io.FileNotFoundException: Could not locate clojure/tools/nrepl/middleware__init.class or clojure/tools/nrepl/middleware.clj on classpath: 
    at clojure.lang.RT.load(RT.java:468)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5417)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at cemerick.piggieback$eval2612$loading__4910__auto____2613.invoke(piggieback.clj:1)
    at cemerick.piggieback$eval2612.invoke(piggieback.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:395)
    at clojure.lang.RT.loadResourceScript(RT.java:386)
    at clojure.lang.RT.load(RT.java:465)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at cemerick.austin.repls$eval11$loading__4910__auto____12.invoke(repls.clj:1)
    at cemerick.austin.repls$eval11.invoke(repls.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:395)
    at clojure.lang.RT.loadResourceScript(RT.java:386)
    at clojure.lang.RT.load(RT.java:465)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval7.invoke(form-init2388038717758649929.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.Compiler.loadFile(Compiler.java:7020)
    at clojure.main$load_script.invoke(main.clj:299)
    at clojure.main$init_opt.invoke(main.clj:304)
    at clojure.main$initialize.invoke(main.clj:332)
    at clojure.main$null_opt.invoke(main.clj:367)
    at clojure.main$main.doInvoke(main.clj:445)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:419)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.main.main(main.java:37)
Subprocess failed

I'm running Leiningen 2.3.2 on Java 1.6.0_51 Java HotSpot(TM) 64-Bit Server VM all the Android build tools are updated to the latest available. I don't know what I'm doing wrong, if you can help that would be very appreciated.

alexander-yakushev commented 10 years ago

First of all, please update to JDK7. Latest Android build tools won't work with the previous version.

Next, you obviously have a lot of redundant packages in the dependencies, probably in Leiningen's profiles.clj: it's clojurescript libraries, cemerick/austin, and also nrepl.middleware which causes the error. Please try to remove the extra libraries, which most likely won't work on Android, do lein clean and try again.

frankiesardo commented 10 years ago

That works fine, thanks for your help. Any idea why the other plugins cause a conflict with lein-droid?

alexander-yakushev commented 10 years ago

DalvikVM strives to be compatible with JVM, but still it lacks some of the classes, such as sun.*, javax.* packages, JVM-specific classpath features etc. Without looking into those plugins my guess is that nrepl.middleware uses one of those.