clojure-android / lein-droid

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

SecurityException when running lein droid doall #71

Closed nenorbot closed 10 years ago

nenorbot commented 10 years ago

I created a new project using lein-droid, and except for setting the path to the android sdk, did not do anything. I tried to run lein droid doall and got the following exception. I am using lein-droid 0.2.0-preview2, neko 3.0.0-preview3 and Java 1.6.0_45 64 bit.

Compiling clojure.java.browse Compiling compliment.sources.class-members Compiling neko.ui.listview Compiling compliment.sources Compiling clojure.data Compiling clojure.tools.nrepl.middleware.interruptible-eval Compiling clojure.tools.nrepl.ack Compiling clojure.tools.nrepl.server Compiling clojure.tools.nrepl.misc Compiling compliment.sources.ns-mappings Compiling neko.init.options Compiling neko.listeners.adapter-view Compiling neko.doc Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.lang, compiling:(neko/resource.clj:58:23) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6567) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2669) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.access$100(Compiler.java:37) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5973) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.access$100(Compiler.java:37) at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:529) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) at clojure.lang.Compiler.analyze(Compiler.java:6361) at clojure.lang.Compiler.analyze(Compiler.java:6322) at clojure.lang.Compiler.compile1(Compiler.java:7148) at clojure.lang.Compiler.compile(Compiler.java:7219) 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$fn5018.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$fn4967.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:482) at neko.ui.traits$loading4910auto.invoke(traits.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:159) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3458) at clojure.lang.Compiler.compile1(Compiler.java:7153) at clojure.lang.Compiler.compile1(Compiler.java:7143) at clojure.lang.Compiler.compile(Compiler.java:7219) 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$fn5018.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$fn4967.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:421) at neko.doc$loading4910auto.invoke(doc.clj:12) at clojure.lang.AFn.applyToHelper(AFn.java:159) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3458) at clojure.lang.Compiler.compile1(Compiler.java:7153) at clojure.lang.Compiler.compile1(Compiler.java:7143) at clojure.lang.Compiler.compile(Compiler.java:7219) 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__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$compile$fn__5023.invoke(core.clj:5541) at clojure.core$compile.invoke(core.clj:5540) at user$eval7.invoke(form-init5108864013584854669.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) 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) Caused by: java.lang.SecurityException: Prohibited package name: java.lang at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:625) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2436) at java.lang.Class.privateGetPublicMethods(Class.java:2556) at java.lang.Class.getMethods(Class.java:1412) at clojure.lang.Reflector.getMethods(Reflector.java:357) at clojure.lang.Compiler$InstanceMethodExpr.(Compiler.java:1395) at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:952) at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560) ... 98 more Compilation failed.

alexander-yakushev commented 10 years ago

Never seen anything like that before actually. Can you please repeat it with lein-droid 0.2.0-preview4 and neko 3.0.0-preview4?

nenorbot commented 10 years ago

I still get the same problem with lein-droid 0.2.0-preview4 and neko 3.0.0-preview4. I changed JDK's to Java 1.7.0_25, and under it compilation is successful.

alexander-yakushev commented 10 years ago

Interesting. Android have supported JDK6 so far, and JDK7 support is made via compatibility mode.

What SDK/Bulild tools versions of Android are you using?

nenorbot commented 10 years ago

version 19 for both

alexander-yakushev commented 10 years ago

OK, this is it. New SDK requires JDK7 now [1]. I haven't started using it yet. Please notify me if anything goes wrong with JDK7 and Clojure-Android.

Also I think you can now drop this line from project.clj:

:javac-options ["-target" "1.6" "-source" "1.6" "-Xlint:-options"]
nenorbot commented 10 years ago

Thank you, I wasn't aware that with version 19 we can use JDK7.

alexander-yakushev commented 10 years ago

Neither was I, and furthermore that you can't use JDK6 anymore.