clojure-android / lein-droid

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

Cyclic load dependency in release mode #116

Closed wiseman closed 9 years ago

wiseman commented 9 years ago

Using 0.3.0-beta4, if I lein droid new, and make minimal changes for my environment (changing the :sdk-path and :target-version), I get a project that will build in debug mode but not in release mode. The issue in release mode is a cyclic load dependency:

[wiseman@Johns-MacBook-Air-2 jwtest]$ lein do clean, with-profile release droid doall
lein do clean, with-profile release droid doall
Generating manifest...
Generating R.java...
Compiling 2 source files to /Users/wiseman/src/jwtest/target/release/classes
Compiling Clojure files...
Build type: release, dynamic compilation: disabled, remote REPL: disabled.
Compiling com.lemondronor.jwtest.main
Exception in thread "main" java.lang.Exception: Cyclic load dependency: [ /neko/activity ]->/neko/ui/traits->/neko/ui->[ /neko/activity ]->/com/lemondronor/jwtest/main, compiling:(neko/ui/traits.clj:163:1)
    at clojure.core$throw_if.doInvoke(core.clj:5576)
    at clojure.lang.RestFn.invoke(RestFn.java:442)
    at clojure.core$check_cyclic_dependency.invoke(core.clj:5712)
    at clojure.core$load.doInvoke(core.clj:5809)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5617)
    at clojure.core$load_lib$fn__5354.invoke(core.clj:5657)
    at clojure.core$load_lib.doInvoke(core.clj:5656)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$load_libs.doInvoke(core.clj:5695)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$require.doInvoke(core.clj:5778)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3597)
    at clojure.lang.Compiler.compile1(Compiler.java:7290)
    at clojure.lang.Compiler.compile(Compiler.java:7356)
    at clojure.lang.RT.compile(RT.java:423)
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5405.invoke(core.clj:5812)
    at clojure.core$load.doInvoke(core.clj:5811)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5617)
    at clojure.core$load_lib$fn__5354.invoke(core.clj:5657)
    at clojure.core$load_lib.doInvoke(core.clj:5656)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$load_libs.doInvoke(core.clj:5695)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:630)
    at clojure.core$use.doInvoke(core.clj:5789)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at neko.ui$loading__5297__auto____217.invoke(ui.clj:1)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3597)
    at clojure.lang.Compiler.compile1(Compiler.java:7290)
    at clojure.lang.Compiler.compile1(Compiler.java:7280)
    at clojure.lang.Compiler.compile(Compiler.java:7356)
    at clojure.lang.RT.compile(RT.java:423)
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5405.invoke(core.clj:5812)
    at clojure.core$load.doInvoke(core.clj:5811)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5617)
    at clojure.core$load_lib$fn__5354.invoke(core.clj:5657)
    at clojure.core$load_lib.doInvoke(core.clj:5656)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$load_libs.doInvoke(core.clj:5695)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$require.doInvoke(core.clj:5778)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at neko.activity$loading__5297__auto____19.invoke(activity.clj:12)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3597)
    at clojure.lang.Compiler.compile1(Compiler.java:7290)
    at clojure.lang.Compiler.compile1(Compiler.java:7280)
    at clojure.lang.Compiler.compile(Compiler.java:7356)
    at clojure.lang.RT.compile(RT.java:423)
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5405.invoke(core.clj:5812)
    at clojure.core$load.doInvoke(core.clj:5811)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5617)
    at clojure.core$load_lib$fn__5354.invoke(core.clj:5657)
    at clojure.core$load_lib.doInvoke(core.clj:5656)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:628)
    at clojure.core$load_libs.doInvoke(core.clj:5695)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:630)
    at clojure.core$use.doInvoke(core.clj:5789)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at com.lemondronor.jwtest.main$loading__5297__auto____17.invoke(main.clj:1)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3597)
    at clojure.lang.Compiler.compile1(Compiler.java:7290)
    at clojure.lang.Compiler.compile1(Compiler.java:7280)
    at clojure.lang.Compiler.compile(Compiler.java:7356)
    at clojure.lang.RT.compile(RT.java:423)
    at clojure.lang.RT.load(RT.java:463)
    at clojure.lang.RT.load(RT.java:436)
    at clojure.core$load$fn__5405.invoke(core.clj:5812)
    at clojure.core$load.doInvoke(core.clj:5811)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5617)
    at clojure.core$compile$fn__5410.invoke(core.clj:5823)
    at clojure.core$compile.invoke(core.clj:5822)
    at user$eval7.invoke(form-init3567361138817532119.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6767)
    at clojure.lang.Compiler.eval(Compiler.java:6757)
    at clojure.lang.Compiler.load(Compiler.java:7194)
    at clojure.lang.Compiler.loadFile(Compiler.java:7150)
    at clojure.main$load_script.invoke(main.clj:279)
    at clojure.main$init_opt.invoke(main.clj:284)
    at clojure.main$initialize.invoke(main.clj:312)
    at clojure.main$null_opt.invoke(main.clj:347)
    at clojure.main$main.doInvoke(main.clj:425)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: Cyclic load dependency: [ /neko/activity ]->/neko/ui/traits->/neko/ui->[ /neko/activity ]->/com/lemondronor/jwtest/main
    ... 109 more
Compilation failed.
Error encountered performing task 'droid' with profile(s): 'release'
Compilation failed.
alexander-yakushev commented 9 years ago

Yes, it was a very stupid bug. I will push the fix to the next Neko release, for now you can try neko 3.1.0-SNAPSHOT.

alexander-yakushev commented 9 years ago

Did it work for you? Can we close this?

wiseman commented 9 years ago

Yes, that worked. Thank you.

alexander-yakushev commented 9 years ago

Duplicate of #115.