A Leiningen plugin for building Clojure/Android projects

Related tags

Plugin lein-droid
Overview

lein-droid

https://travis-ci.org/clojure-android/lein-droid.svg?branch=master

A Leiningen plugin to simplify Clojure development for Android platform. It acts as a build-tool for Clojure/Android projects.

Usage

First make sure you have Android SDK installed, with the latest Android SDK Build-tools and Android Support Repository.

Follow the Tutorial to start using lein-droid.

Latest release:

https://clojars.org/lein-droid/latest-version.svg

Documentation

The wiki is a primary source of lein-droid documentation. To know more about project.clj options lein-droid supports, consult this page.

If you’d like to read the code, Marginalia docs are here.

Kris Calabio wrote a tutorial on how to write your first real Clojure/Android application.

How to modify lein-droid

Being a plugin for Leiningen, the workflow for modifying, debugging and testing it is slightly more complicated than with a regular Clojure project. See Hacking the plugin page for details.

Contributors

I thank the following people for their help in extending and improving lein-droid:

License

Copyright © 2012-2015 Alexander Yakushev. Distributed under the Eclipse Public License, the same as Clojure. See the file COPYING.

Comments
  • Using Google Play Services

    Using Google Play Services

    Documentation mentions :use-google-api 1, as the way to use additional APIs such as the Google Play Services. However, it just looks in sdk/add-ons directory, whereas Google Play Services are installed in `sdk/extras'.

    It's possible to refer them via :external-classes-paths, but shouldn't there some more easily-configurable way? Should it be hardcoded in the same way the add-ons are searched? (Not sure about this, as (don't know really why), SDK documentation mentions that one should reference local copy instead of the libs installed under sdk directory 2)

    enhancement 
    opened by BartAdv 34
  • Having trouble with using the REPL to execute code on my device

    Having trouble with using the REPL to execute code on my device

    I am using the code generated by following the Tutorial. The only change I made is change the target sdk to 17. When I reach the lein droid doall step, the app opens on my device, then I connect to the port through nREPL in emacs. I then enter the command (in-ns 'org.stuff.clojuroid.main). I start evaluating the forms in the source code to see that the REPL works:

    (ns org.stuff.clojuroid.main
      (:use [neko.activity :only [defactivity set-content-view!]]
            [neko.threading :only [on-ui]]
            [neko.ui :only [make-ui]]
            [neko.application :only [defapplication]]))
    
    (defapplication org.stuff.clojuroid.Application)
    
    (defactivity org.stuff.clojuroid.MyActivity
      :def a
      :on-create
      (fn [this bundle]
        (on-ui
         (set-content-view! a
          (make-ui [:linear-layout {}
                    [:text-view {:text "Hello from Clojure!"}]])))))
    

    The first two forms return nil. When I evaluate the defactivity form, I get this error:

    clojure.lang.Compiler$CompilerException: java.lang.NoClassDefFoundError: android/os/UserHandle, compiling:(NO_SOURCE_PATH:1:1)
     at clojure.lang.Compiler.analyzeSeq (Compiler.java:6567)
        clojure.lang.Compiler.analyze (Compiler.java:6361)
        clojure.lang.Compiler.analyzeSeq (Compiler.java:6548)
        clojure.lang.Compiler.analyze (Compiler.java:6361)
        clojure.lang.Compiler.analyze (Compiler.java:6322)
        clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:5708)
        clojure.lang.Compiler$FnMethod.parse (Compiler.java:5139)
        clojure.lang.Compiler$FnExpr.parse (Compiler.java:3751)
        clojure.lang.Compiler.analyzeSeq (Compiler.java:6558)
        clojure.lang.Compiler.analyze (Compiler.java:6361)
        clojure.lang.Compiler.analyzeSeq (Compiler.java:6548)
        clojure.lang.Compiler.analyze (Compiler.java:6361)
        clojure.lang.Compiler.access$100 (Compiler.java:37)
        clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:529)
        clojure.lang.Compiler.analyzeSeq (Compiler.java:6560)
        clojure.lang.Compiler.analyze (Compiler.java:6361)
        clojure.lang.Compiler.analyze (Compiler.java:6322)
        clojure.lang.Compiler.eval (Compiler.java:6623)
        clojure.lang.Compiler.eval (Compiler.java:6608)
        clojure.lang.Compiler.eval (Compiler.java:6582)
        clojure.core$eval.invoke (core.clj:2848)
        clojure.main$repl$read_eval_print__6588$fn__6591.invoke (main.clj:264)
        clojure.main$repl$read_eval_print__6588.invoke (main.clj:264)
        clojure.main$repl$fn__6597.invoke (main.clj:282)
        clojure.main$repl.doInvoke (main.clj:281)
        clojure.lang.RestFn.invoke (RestFn.java:1096)
        clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__228.invoke (interruptible_eval.clj:51)
        clojure.lang.AFn.applyToHelper (AFn.java:159)
        clojure.lang.AFn.applyTo (AFn.java:151)
        clojure.core$apply.invoke (core.clj:617)
        clojure.core$with_bindings_STAR_.doInvoke (core.clj:1788)
        clojure.lang.RestFn.invoke (RestFn.java:425)
        clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:36)
        clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__265$fn__268.invoke (interruptible_eval.clj:166)
        clojure.core$comp$fn__4154.invoke (core.clj:2330)
        clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__258.invoke (interruptible_eval.clj:130)
        clojure.lang.AFn.run (AFn.java:24)
        java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076)
        java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:569)
        java.lang.Thread.run (Thread.java:856)
    

    I am not sure what the error means, but my guess is that my environment is not set up correctly for dynamic compilation.

    I am using: clojure-android 1.5.1-SNAPSHOT neko 3.0.0-SNAPSHOT lein 2.3.1 java 1.6.0_45

    version-mismatch 
    opened by krisc 28
  • Stop merging/unmerging profiles and parts of profiles randomly

    Stop merging/unmerging profiles and parts of profiles randomly

    simply encourage profiles which don't derive from base or user and have an :android-config in your profiles for setting the sdk path and any injections or dependencies which you want to include in all your android projects.

    This also allows the :android :build-type :debug or :release option, rather than examining which profiles were included, this is far more robust and allows you to have multiple release and debug profiles. Generally this is more predictable and in line with the way that leiningen profiles are supposed to be used.

    I have left the doall and release tasks for now for back compatibility and quick-start, but more and more they should be replaced my profile inheritance and simple aliases in the future.

    Doall and release only pull in :android-dev and :android-release respectively, and both pull in :android-config which is expected to be found in your profiles.clj, these should be minimal tweaks to configuration and remove a lot of headaches and potential pitfalls.

    enhancement 
    opened by AdamClements 26
  • 0.2.0-beta3: Stub app won't work

    0.2.0-beta3: Stub app won't work

    I just created a brand new app and the SplashActivity, which is written in java in the "stub" app does not seem to make it into the dex. When I try to run it I get the following:

     java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.clojure.app/com.example.clojure.app.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.clojure.app.SplashActivity" on path: /data/app/com.example.clojure.app-1.apk
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)
        at android.app.ActivityThread.access$700(ActivityThread.java:152)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5328)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.clojure.app.SplashActivity" on path: /data/app/com.example.clojure.app-1.apk
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1071)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)
        … 11 more
    

    Searching for the class, it does seem to be compiled:

    ./target/classes/com/example/clojure/app/SplashActivity$1.class
    ./target/classes/com/example/clojure/app/SplashActivity.class
    

    But the following command doesn't give any output:

    dexdump target/classes.dex | grep Splash

    not-a-bug 
    opened by alcarvalho 22
  • apkbuilder was removed from the latest Android Build Tools

    apkbuilder was removed from the latest Android Build Tools

    I had to move around a few paths on osx, but basically this goes find until generating the apk file.

    There is no apkbuilder in recent releases for osx (or is there ?). Unless lein-droid is only windows based. If not, could you point to the sdk version you are using so I can download it ?

    Thanks !

    bug 
    opened by hellonico 20
  • Improved manifest manipulation

    Improved manifest manipulation

    Much more flexible manifest system. Define a :manifest-template xml file which has placeholders in the clostache format, for example {{version-code}}, then specify an :android :manifest map with the appropriate substitutions. This can be used to insert debug permissions, version codes, change app names in different profiles, etc.

    Bundled with this I have made the default map insert the {{version-name}} and {{version-code}} substitutions from the semantic leiningen version string. This will work if you stick to standard semantic versioning (which the new leiningen releases feature does).

    This feature is back-compatible. :manifest-file remains as an option, and is the output of the template substitution, so I would recommend by default this is set to target/AndroidManifest.xml if you're using the new :manifest-template option.

    There is a lot of other code which could be simplified in lein-droid using this approach without breaking back-compatibility I think, and even bigger improvements which could be made if this was the default way to do manifest manipulation. This has the nice property that it can be overridden in different profiles and arbitrarily extended without needing to hardcode every situation ahead of time.

    I've also included the option to change the apk package namespace (different to the namespace which R references etc), this lets you install multiple versions of your app without them conflicting, which I need to have a release version installed at the same time as actively developing.

    Here's a gist with a skeleton manifest and project.clj making use of the new features. Note that when this runs, the versionCode and versionName will be automatically set in the manifest map as per the "1.3.1-SNAPSHOT" set in the project.clj

    enhancement 
    opened by AdamClements 19
  • "lein droid build" fails on Windows with JDK7

    I'm on Windows 7 x64, and "lein droid build" fails. It initially couldn't find /platform-tools/aapt and /platform-tools/dx, because on windows they are "aapt.exe" and "dx.bat". I made symbolic links to both using mklink, but it still can't run dx.bat because it says it is "not a valid Win32 application". I believe this is because ProcessBuilder can't run *.bat files directly.

    I'm not sure if there is a simple way to normalize all the pathnames in the code to make Windows work -- it may be more effort than it is worth. For now, I am booting up an Ubuntu VM, but creating the DEX file is taking forever (over 24 hours) because I have hundreds of *.java files in my project, so I was hoping to try compiling it in my host OS for speed.

    bug 
    opened by oakes 18
  • failed to lein droid build

    failed to lein droid build

    Hi,

    I'm trying a lein-droid on Windows 7 64-bit.

    lein droid new clojuroid kr.ac.ajou.dv.clojuroid :activity MainActivity :target-sdk 10 :app-name ClojureMeetsAndroid

    and

    lein deps

    worked fine.

    When I tried lein droid build, it fails...

    I used a Cygwin shell, and the error message follows: Unfortunately, DEBUG=1 did not show me a meaningful message. Just a NullPointerException.

    $ DEBUG=1 lein droid build Leiningen's classpath: ;C:\cygwin\home\yu4up.lein/self-installs/leiningen-2.1.3-standalone.jar Applying task droid to (build) Generating R.java... java.lang.NullPointerException at clojure.java.io$as_relative_path.invoke(io.clj:403) at clojure.java.io$file.invoke(io.clj:415) at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58) at clojure.core.protocols$fn__6041.invoke(protocols.clj:98) at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19) at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31) at clojure.core.protocols$fn__6028.invoke(protocols.clj:48) at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13) at clojure.core$reduce.invoke(core.clj:6177) at clojure.java.io$file.doInvoke(io.clj:417) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at leiningen.droid.utils$sdk_binary.invoke(utils.clj:39) at leiningen.droid.compile$code_gen.invoke(compile.clj:26) at leiningen.droid.build$build.invoke(build.clj:82) at leiningen.droid$execute_subtask.invoke(droid.clj:103) at leiningen.droid$droid.doInvoke(droid.clj:74) at clojure.lang.RestFn.invoke(RestFn.java:423) 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.core$apply.invoke(core.clj:619) at leiningen.core.main$resolve_task$fn__1836.doInvoke(main.clj:149) at clojure.lang.RestFn.applyTo(RestFn.java:139) at clojure.lang.AFunction$1.doInvoke(AFunction.java:29) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at leiningen.core.main$apply_task.invoke(main.clj:189) at leiningen.core.main$resolve_and_apply.invoke(main.clj:193) at leiningen.core.main$_main$fn__1899.invoke(main.clj:257) at leiningen.core.main$_main.doInvoke(main.clj:247) 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.core$apply.invoke(core.clj:617) at clojure.main$main_opt.invoke(main.clj:335) at clojure.main$main.doInvoke(main.clj:440) at clojure.lang.RestFn.invoke(RestFn.java:457) at clojure.lang.Var.invoke(Var.java:427) at clojure.lang.AFn.applyToHelper(AFn.java:172) at clojure.lang.Var.applyTo(Var.java:532) at clojure.main.main(main.java:37)

    My .profiles.clj

    {:user {:plugins [[lein-droid "0.1.0-preview5"]]} :android {:sdk-path "C:\Users\yu4up\AppData\Local\Android\android-sdk"} }

    And I didn't edit the project.clj.

    Thank you, Jonguk Kim

    not-a-bug 
    opened by jukworks 12
  • MainActivity missing from classes.dex

    MainActivity missing from classes.dex

    E/AndroidRuntime( 6416): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{jaaka.core/jaaka.core.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "jaaka.core.MainActivity" on path: DexPathList[[zip file "/data/app/jaaka.core-2.apk"],nativeLibraryDirectories=[/data/app-lib/jaaka.core-2, /vendor/lib, /system/lib]]
    E/AndroidRuntime( 6416):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
    E/AndroidRuntime( 6416):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
    E/AndroidRuntime( 6416):        at android.app.ActivityThread.access$800(ActivityThread.java:135)
    E/AndroidRuntime( 6416):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    E/AndroidRuntime( 6416):        at android.os.Handler.dispatchMessage(Handler.java:102)
    E/AndroidRuntime( 6416):        at android.os.Looper.loop(Looper.java:136)
    E/AndroidRuntime( 6416):        at android.app.ActivityThread.main(ActivityThread.java:5001)
    E/AndroidRuntime( 6416):        at java.lang.reflect.Method.invoke(Native Method)
    E/AndroidRuntime( 6416):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    E/AndroidRuntime( 6416):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    E/AndroidRuntime( 6416): Caused by: java.lang.ClassNotFoundException: Didn't find class "jaaka.core.MainActivity" on path: DexPathList[[zip file "/data/app/jaaka.core-2.apk"],nativeLibraryDirectories=[/data/app-lib/jaaka.core-2, /vendor/lib, /system/lib]]
    E/AndroidRuntime( 6416):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    E/AndroidRuntime( 6416):        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    E/AndroidRuntime( 6416):        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    E/AndroidRuntime( 6416):        at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
    E/AndroidRuntime( 6416):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)
    E/AndroidRuntime( 6416):        ... 9 more
    E/AndroidRuntime( 6416):        Suppressed: java.lang.ClassNotFoundException: jaaka.core.MainActivity
    E/AndroidRuntime( 6416):                at java.lang.Class.classForName(Native Method)
    E/AndroidRuntime( 6416):                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    E/AndroidRuntime( 6416):                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    E/AndroidRuntime( 6416):                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
    E/AndroidRuntime( 6416):                ... 12 more
    E/AndroidRuntime( 6416):        Caused by: java.lang.NoClassDefFoundError: Class "Ljaaka/core/MainActivity;" not found
    E/AndroidRuntime( 6416):                ... 16 more
    W/ActivityManager(  837):   Force finishing activity jaaka.core/.MainActivity
    

    This seems to happen quite randomly, without changing any code. dexdump target/classes.dex | grep "MainActivity" finds nothing.

    lein clean; rm -r assets/ gen/ does not fix it either, I have to do clean, then git stash; lein droid doall; git stash pop. Maybe something is cached somewhere?

    I can also send you the project files, but it's basically lein droid new with minor changes.

    Btw, I feel like there should be a lein droid clean call that also deletes gen/ and assets/ directories ;)

    Edit: lein-droid is version 0.2.3, $ lein -v output: Leiningen 2.5.0 on Java 1.7.0_65 OpenJDK 64-Bit Server VM, on Kubuntu 14.04.

    can't-reproduce 
    opened by Nutomic 11
  • release build causes java.io.FileNotFoundException: Could not locate clojure/tools/nrepl/server__init.class

    release build causes java.io.FileNotFoundException: Could not locate clojure/tools/nrepl/server__init.class

    Hi. First I must thank you for this great project. I'm really enjoying making Android app in Clojure.

    Yesterday I faced release build problem. Following procedure is the reproduction of my problem.

    $ lein --version
    Leiningen 2.3.2 on Java 1.7.0_25 Java HotSpot(TM) 64-Bit Server VM
    
    $ cat ~/.lein/profiles.clj
    {:user  {:plugins  [[lein-droid "0.2.0-preview4"]
    ...
    

    ;; I'm using 0.2.0-preview4 because latest 0.2.0 cause another problem. ;; When I execute lein droid new and lein droid doall with 0.2.0, launched app is killed instantly by java.lang.ClassNotFoundException for SplashActivity.

    First, create project and debug build.

    $ lein droid new clojure-android-release-test com.memerelics.release_test
    $ cd clojure-android-release-test
    $ lein droid doall
    

    It runs correctly on my device.

    Then generate key to sign apk, and edit project.clj to use it.

    $ keytool -genkey -keyalg RSA -v -keystore ~/.keystore -alias test -validity 365
    $ edit project.clj
    
      :dependencies [[org.clojure-android/clojure "1.5.1-jb" :use-resources true]
                     [neko/neko "3.0.0-preview3"]]
      :profiles {:dev {:dependencies [[android/tools.nrepl "0.2.0-bigstack"]
                                      [compliment "0.0.2"]]
                       :android {:aot :all-with-unused}}
                 :release {:android
                           {:keystore-path "/Users/username/.keystore" ;; add
                            :key-alias "test" ;; add
    ...
    

    Finally, I built and run the project as a release version.

    $ lein droid release
    
    E/AndroidRuntime( 7579): java.io.FileNotFoundException: Could not locate clojure/tools/nrepl/server__init.class or clojure/tools/nrepl/server.clj on classpath:
    E/AndroidRuntime( 7579):        at clojure.lang.RT.load(RT.java:468)
    E/AndroidRuntime( 7579):        at clojure.lang.RT.load(RT.java:436)
    E/AndroidRuntime( 7579):        at clojure.core$load$fn__5018.invoke(core.clj:5529)
    E/AndroidRuntime( 7579):        at clojure.core$load.doInvoke(core.clj:5529)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.invoke(RestFn.java:408)
    E/AndroidRuntime( 7579):        at clojure.core$load_one.invoke(core.clj:5336)
    E/AndroidRuntime( 7579):        at clojure.core$load_lib$fn__4967.invoke(core.clj:5374)
    E/AndroidRuntime( 7579):        at clojure.core$load_lib.doInvoke(core.clj:5374)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.applyTo(RestFn.java:142)
    E/AndroidRuntime( 7579):        at clojure.core$apply.invoke(core.clj:619)
    E/AndroidRuntime( 7579):        at clojure.core$load_libs.doInvoke(core.clj:5413)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.applyTo(RestFn.java:137)
    E/AndroidRuntime( 7579):        at clojure.core$apply.invoke(core.clj:621)
    E/AndroidRuntime( 7579):        at clojure.core$use.doInvoke(core.clj:5498)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.invoke(RestFn.java:408)
    E/AndroidRuntime( 7579):        at neko.init$start_repl.doInvoke(init.clj:36)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.applyTo(RestFn.java:137)
    E/AndroidRuntime( 7579):        at clojure.core$apply.invoke(core.clj:621)
    E/AndroidRuntime( 7579):        at neko.init$init.doInvoke(init.clj:80)
    E/AndroidRuntime( 7579):        at clojure.lang.RestFn.invoke(RestFn.java:410)
    E/AndroidRuntime( 7579):        at clojure.lang.Var.invoke(Var.java:415)
    E/AndroidRuntime( 7579):        at com.memerelics.release_test.SplashActivity$1.run(SplashActivity.java:62)
    E/AndroidRuntime( 7579):        at java.lang.Thread.run(Thread.java:856)
    

    The logcat message says my app could not find nrepl server. Release build also require nrepl? Or I've missed some settings?

    not-a-bug 
    opened by thash 11
  • Either used the most recent dx or allow user to specify which build-tools

    Either used the most recent dx or allow user to specify which build-tools

    It'd be nice if create-dx could use the most recent build-tools on the system, or let the user specify which one (i.e. to get around bugs in 17.0.0 that are fixed in 19.0.3). See https://github.com/clojure-android/neko/issues/29

    enhancement 
    opened by kenrestivo 10
  • Timeout issue in keyboard

    Timeout issue in keyboard

    @KazuCocoa PFB given log where u can see the keyboard issue.

    15:01:18 V [HTTP] {"using":"id","value":"Search in Sent"} 1498 15:01:18 V [debug] [MJSONWP (84b5d116)] Calling AppiumDriver.findElement() with args: ["id","Search in Sent","84b5d116-76fd-4076-b2b4-d022711f6d52"] 1499 15:01:18 V [debug] [XCUITest] Executing command 'findElement' 1500 15:01:18 V [debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id 1501 15:01:18 V [debug] [BaseDriver] Waiting up to 0 ms for condition 1502 15:01:18 V [debug] [XCUITest] Setting custom timeout to 60000 ms for 'findElement' command 1503 15:01:18 V [debug] [WD Proxy] Matched '/element' to command name 'findElement' 1504 15:01:18 V [debug] [WD Proxy] Proxying [POST /element] to [POST http://127.0.0.1:5703/session/FC823CAC-7F77-444D-B217-1178D48ADA16/element] with body: {"using":"id","value":"Search in Sent"} 1505 15:01:19 V [debug] [WD Proxy] Got response with status 200: {"value":{"ELEMENT":"8C000000-0000-0000-3D01-000000000000"},"sessionId":"FC823CAC-7F77-444D-B217-1178D48ADA16","status":0} 1506 15:01:19 V [debug] [MJSONWP (84b5d116)] Responding to client with driver.findElement() result: {"element-6066-11e4-a52e-4f735466cecf":"8C000000-0000-0000-3D01-000000000000","ELEMENT":"8C000000-0000-0000-3D01-000000000000"} 1507 15:01:19 V [HTTP] <-- POST /wd/hub/session/84b5d116-76fd-4076-b2b4-d022711f6d52/element 200 723 ms - 199 1508 15:01:19 V [HTTP] 1509 15:01:19 V [HTTP] --> POST /wd/hub/session/84b5d116-76fd-4076-b2b4-d022711f6d52/element/8C000000-0000-0000-3D01-000000000000/value 1510 15:01:19 V [HTTP] {"id":"8C000000-0000-0000-3D01-000000000000","value":["20190926-203020Subject"]} 1511 15:01:19 V [debug] [MJSONWP (84b5d116)] Calling AppiumDriver.setValue() with args: [["20190926-203020Subject"],"8C000000-0000-0000-3D01-000000000000","84b5d116-76fd-4076-b2b4-d022711f6d52"] 1512 15:01:19 V [debug] [XCUITest] Executing command 'setValue' 1513 15:01:19 V [debug] [XCUITest] Setting custom timeout to 60000 ms for 'setValue' command 1514 15:01:19 V [debug] [WD Proxy] Matched '/element/8C000000-0000-0000-3D01-000000000000/value' to command name 'setValue' 1515 15:01:19 V [debug] [Protocol Converter] Added 'text' property "20190926-203020Subject" to 'setValue' request body 1516 15:01:19 V [debug] [WD Proxy] Proxying [POST /element/8C000000-0000-0000-3D01-000000000000/value] to [POST http://127.0.0.1:5703/session/FC823CAC-7F77-444D-B217-1178D48ADA16/element/8C000000-0000-0000-3D01-000000000000/value] with body: {"value":["2","0","1","9","0","9","2","6","-","2","0","3","0","2","0","S","u","b","j","e","c","t"],"text":"20190926-203020Subject"} 1517 15:01:23 V [debug] [WD Proxy] Got response with status 200: {"value":"Error Domain=XCTDaemonErrorDomain Code=14 "Timed out after waiting 1.0s for KeyEventCompleted after sending event for '1'." UserInfo={NSLocalizedDescription=Timed out after waiting 1.0s for KeyEventCompleted after sending event for '1'.}","sessionId":"FC823CAC-7F77-444D-B217-1178D48ADA16","status":13} 1518 15:01:23 V [WD Proxy] Got an unexpected response: {"value":"Error Domain=XCTDaemonErrorDomain Code=14 "Timed out after waiting 1.0s for KeyEventCompleted after sending event for '1'." UserInfo={NSLocalizedDescription=Timed out after waiting 1.0s for KeyEventCompleted after sending event for '1'.}","sessionId":"FC823CAC-7F77-444D-B217-1178D48AD... 1519 15:01:23 V [debug] [MJSONWP] Matched JSONWP error code 13 to UnknownError 1520 15:01:23 V [debug] [XCUITest] Setting custom timeout to 60000 ms for 'getAttribute' command 1521 15:01:23 V [debug] [WD Proxy] Matched '/element/8C000000-0000-0000-3D01-000000000000/attribute/type' to command name 'getAttribute' 1522 15:01:23 V [debug] [WD Proxy] Proxying [GET /element/8C000000-0000-0000-3D01-000000000000/attribute/type] to [GET http://127.0.0.1:5703/session/FC823CAC-7F77-444D-B217-1178D48ADA16/element/8C000000-0000-0000-3D01-000000000000/attribute/type] with no body 1523 15:02:23 V [debug] [iOSLog] Stopping iOS log capture 1524 15:02:23 V [Appium] Closing session, cause was 'Appium did not get any response from 'getAttribute' command in 60000 ms' 1525 15:02:23 V [Appium] Removing session 84b5d116-76fd-4076-b2b4-d022711f6d52 from our master session list 1526 15:02:23 V [XCUITest] Error: Appium did not get any response from 'getAttribute' command in 60000 ms 1527 15:02:23 V [XCUITest] at Object.wrappedLogger.errorAndThrow (/root/appium/appium/1.14.0/node_modules/appium/node_modules/appium-support/lib/logging.js:78:13) 1528 15:02:23 V [debug] [MJSONWP (84b5d116)] Encountered internal error running command: TimeoutError: Appium did not get any response from 'getAttribute' command in 60000 ms 1529 15:02:23 V [XCUITest] at XCUITestDriver.errorAndThrow [as proxyCommand] (/root/appium/appium/1.14.0/node_modules/appium/node_modules/appium-xcuitest-driver/lib/commands/proxy-helper.js:110:9) 1530 15:02:23 V [debug] [MJSONWP (84b5d116)] at XCUITestDriver.proxyCommand (/root/appium/appium/1.14.0/node_modules/appium/node_modules/appium-xcuitest-driver/lib/commands/proxy-helper.js:109:40) 1531 15:02:23 V [HTTP] <-- POST /wd/hub/session/84b5d116-76fd-4076-b2b4-d022711f6d52/element/8C000000-0000-0000-3D01-000000000000/value 500 63580 ms - 158 1532 15:02:23 V [HTTP] 1533 15:02:23 V [HTTP] --> POST /wd/hub/session/84b5d116-76fd-4076-b2b4-d022711f6d52/element/active 1534 15:02:23 V [HTTP] {} 1535 15:02:23 V [debug] [MJSONWP (84b5d116)] Encountered internal error running command: NoSuchDriverError: A session is either terminated or not started 1536 15:02:23 V [debug] [MJSONWP (84b5d116)] at asyncHandler (/root/appium/appium/1.14.0/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:298:15) 1537 15:02:23 V [debug] [MJSONWP (84b5d116)] at asyncHandler (/root/appium/appium/1.14.0/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:489:15) 1538 15:02:23 V [debug] [MJSONWP (84b5d116)] at Layer.handle [as handle_request] (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/layer.js:95:5) 1539 15:02:23 V [debug] [MJSONWP (84b5d116)] at next (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/route.js:137:13) 1540 15:02:23 V [debug] [MJSONWP (84b5d116)] at Route.dispatch (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/route.js:112:3) 1541 15:02:23 V [debug] [MJSONWP (84b5d116)] at Layer.handle [as handle_request] (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/layer.js:95:5) 1542 15:02:23 V [debug] [MJSONWP (84b5d116)] at /root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:281:22 1543 15:02:23 V [debug] [MJSONWP (84b5d116)] at param (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:354:14) 1544 15:02:23 V [debug] [MJSONWP (84b5d116)] at param (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:365:14) 1545 15:02:23 V [debug] [MJSONWP (84b5d116)] at Function.process_params (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:410:3) 1546 15:02:23 V [debug] [MJSONWP (84b5d116)] at next (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:275:10) 1547 15:02:23 V [debug] [MJSONWP (84b5d116)] at logger (/root/appium/appium/1.14.0/node_modules/appium/node_modules/morgan/index.js:144:5) 1548 15:02:23 V [debug] [MJSONWP (84b5d116)] at Layer.handle [as handle_request] (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/layer.js:95:5) 1549 15:02:23 V [debug] [MJSONWP (84b5d116)] at trim_prefix (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:317:13) 1550 15:02:23 V [debug] [MJSONWP (84b5d116)] at /root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:284:7 1551 15:02:23 V [debug] [MJSONWP (84b5d116)] at Function.process_params (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:335:12) 1552 15:02:23 V [debug] [MJSONWP (84b5d116)] at next (/root/appium/appium/1.14.0/node_modules/appium/node_modules/express/lib/router/index.js:275:10) 1553 15:02:23 V [debug] [MJSONWP (84b5d116)] at /root/appium/appium/1.14.0/node_modules/appium/node_modules/body-parser/lib/read.js:130:5 1554 15:02:23 V [debug] [MJSONWP (84b5d116)] at invokeCallback (/root/appium/appium/1.14.0/node_modules/appium/node_modules/raw-body/index.js:224:16) 1555 15:02:23 V [debug] [MJSONWP (84b5d116)] at done (/root/appium/appium/1.14.0/node_modules/appium/node_modules/raw-body/index.js:213:7) 1556 15:02:23 V [debug] [MJSONWP (84b5d116)] at IncomingMessage.onEnd (/root/appium/appium/1.14.0/node_modules/appium/node_modules/raw-body/index.js:273:7) 1557 15:02:23 V [debug] [MJSONWP (84b5d116)] at IncomingMessage.emit (events.js:194:15) 1558 15:02:23 V [HTTP] <-- POST /wd/hub/session/84b5d116-76fd-4076-b2b4-d022711f6d52/element/active 404 44 ms - 131

    opened by mirudhubashini 0
  • ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme

    ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme

    Hello. Just tried to install lein-droid in a project and I got the following error when trying to acquire deps.

    I've tried to fix this in a number of ways. I've added dependencies on aether-api and aether-util in the project. That didn't help. I tried putting the jar in a few locations to see if it was just a path issue. Still nothing. I even tried going into the jar for lein-droid and making the project.clj include the dependencies on aether-api and aether-util directly. Still no luck. Any idea what could be causing this, as well as how to fix it?

    clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme, compiling:(leiningen/droid/classpath.clj:1:1)
     at clojure.lang.Compiler.load (Compiler.java:7391)
        clojure.lang.RT.loadResourceScript (RT.java:372)
        clojure.lang.RT.loadResourceScript (RT.java:363)
        clojure.lang.RT.load (RT.java:453)
        clojure.lang.RT.load (RT.java:419)
        clojure.core$load$fn__5677.invoke (core.clj:5893)
        clojure.core$load.invokeStatic (core.clj:5892)
        clojure.core$load.doInvoke (core.clj:5876)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.core$load_one.invokeStatic (core.clj:5697)
        clojure.core$load_one.invoke (core.clj:5692)
        clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
        clojure.core$load_lib.invokeStatic (core.clj:5736)
        clojure.core$load_lib.doInvoke (core.clj:5717)
        clojure.lang.RestFn.applyTo (RestFn.java:142)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$load_libs.invokeStatic (core.clj:5774)
        clojure.core$load_libs.doInvoke (core.clj:5758)
        clojure.lang.RestFn.applyTo (RestFn.java:137)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$require.invokeStatic (core.clj:5796)
        clojure.core$require.doInvoke (core.clj:5796)
        clojure.lang.RestFn.invoke (RestFn.java:421)
        lein_droid.plugin$eval496$loading__5569__auto____497.invoke (plugin.clj:1)
        lein_droid.plugin$eval496.invokeStatic (plugin.clj:1)
        lein_droid.plugin$eval496.invoke (plugin.clj:1)
        clojure.lang.Compiler.eval (Compiler.java:6927)
        clojure.lang.Compiler.eval (Compiler.java:6916)
        clojure.lang.Compiler.load (Compiler.java:7379)
        clojure.lang.RT.loadResourceScript (RT.java:372)
        clojure.lang.RT.loadResourceScript (RT.java:363)
        clojure.lang.RT.load (RT.java:453)
        clojure.lang.RT.load (RT.java:419)
        clojure.core$load$fn__5677.invoke (core.clj:5893)
        clojure.core$load.invokeStatic (core.clj:5892)
        clojure.core$load.doInvoke (core.clj:5876)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.core$load_one.invokeStatic (core.clj:5697)
        clojure.core$load_one.invoke (core.clj:5692)
        clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
        clojure.core$load_lib.invokeStatic (core.clj:5736)
        clojure.core$load_lib.doInvoke (core.clj:5717)
        clojure.lang.RestFn.applyTo (RestFn.java:142)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$load_libs.invokeStatic (core.clj:5774)
        clojure.core$load_libs.doInvoke (core.clj:5758)
        clojure.lang.RestFn.applyTo (RestFn.java:137)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$require.invokeStatic (core.clj:5796)
        clojure.core$require.doInvoke (core.clj:5796)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        leiningen.core.utils$require_resolve.invokeStatic (utils.clj:102)
        leiningen.core.utils$require_resolve.invoke (utils.clj:95)
        leiningen.core.project$apply_middleware.invokeStatic (project.clj:800)
        leiningen.core.project$apply_middleware.invoke (project.clj:794)
        clojure.lang.ArrayChunk.reduce (ArrayChunk.java:58)
        clojure.core.protocols$fn__6750.invokeStatic (protocols.clj:136)
        clojure.core.protocols/fn (protocols.clj:124)
        clojure.core.protocols$fn__6710$G__6705__6719.invoke (protocols.clj:19)
        clojure.core.protocols$seq_reduce.invokeStatic (protocols.clj:31)
        clojure.core.protocols$fn__6738.invokeStatic (protocols.clj:75)
        clojure.core.protocols/fn (protocols.clj:75)
        clojure.core.protocols$fn__6684$G__6679__6697.invoke (protocols.clj:13)
        clojure.core$reduce.invokeStatic (core.clj:6545)
        clojure.core$reduce.invoke (core.clj:6527)
        leiningen.core.project$apply_middleware.invokeStatic (project.clj:796)
        leiningen.core.project$apply_middleware.invoke (project.clj:794)
        leiningen.core.project$activate_middleware.invokeStatic (project.clj:828)
        leiningen.core.project$activate_middleware.invoke (project.clj:824)
        leiningen.core.project$init_project.invokeStatic (project.clj:952)
        leiningen.core.project$init_project.invoke (project.clj:942)
        leiningen.core.project$read.invokeStatic (project.clj:1023)
        leiningen.core.project$read.invoke (project.clj:1020)
        leiningen.core.project$read.invokeStatic (project.clj:1024)
        leiningen.core.project$read.invoke (project.clj:1020)
        leiningen.core.main$_main$fn__4734.invoke (main.clj:416)
        leiningen.core.main$_main.invokeStatic (main.clj:411)
        leiningen.core.main$_main.doInvoke (main.clj:408)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.lang.Var.invoke (Var.java:379)
        clojure.lang.AFn.applyToHelper (AFn.java:154)
        clojure.lang.Var.applyTo (Var.java:700)
        clojure.core$apply.invokeStatic (core.clj:646)
        clojure.main$main_opt.invokeStatic (main.clj:314)
        clojure.main$main_opt.invoke (main.clj:310)
        clojure.main$main.invokeStatic (main.clj:421)
        clojure.main$main.doInvoke (main.clj:384)
        clojure.lang.RestFn.invoke (RestFn.java:436)
        clojure.lang.Var.invoke (Var.java:388)
        clojure.lang.AFn.applyToHelper (AFn.java:160)
        clojure.lang.Var.applyTo (Var.java:700)
        clojure.main.main (main.java:37)
    Caused by: java.lang.ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme
     at java.net.URLClassLoader.findClass (URLClassLoader.java:381)
        clojure.lang.DynamicClassLoader.findClass (DynamicClassLoader.java:69)
        java.lang.ClassLoader.loadClass (ClassLoader.java:424)
        clojure.lang.DynamicClassLoader.loadClass (DynamicClassLoader.java:77)
        java.lang.ClassLoader.loadClass (ClassLoader.java:357)
        java.lang.Class.forName0 (Class.java:-2)
        java.lang.Class.forName (Class.java:348)
        clojure.lang.RT.classForName (RT.java:2168)
        clojure.lang.RT.classForNameNonLoading (RT.java:2181)
        leiningen.droid.classpath$eval504$loading__5569__auto____505.invoke (classpath.clj:1)
        leiningen.droid.classpath$eval504.invokeStatic (classpath.clj:1)
        leiningen.droid.classpath$eval504.invoke (classpath.clj:1)
        clojure.lang.Compiler.eval (Compiler.java:6927)
        clojure.lang.Compiler.eval (Compiler.java:6916)
        clojure.lang.Compiler.load (Compiler.java:7379)
        clojure.lang.RT.loadResourceScript (RT.java:372)
        clojure.lang.RT.loadResourceScript (RT.java:363)
        clojure.lang.RT.load (RT.java:453)
        clojure.lang.RT.load (RT.java:419)
        clojure.core$load$fn__5677.invoke (core.clj:5893)
        clojure.core$load.invokeStatic (core.clj:5892)
        clojure.core$load.doInvoke (core.clj:5876)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.core$load_one.invokeStatic (core.clj:5697)
        clojure.core$load_one.invoke (core.clj:5692)
        clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
        clojure.core$load_lib.invokeStatic (core.clj:5736)
        clojure.core$load_lib.doInvoke (core.clj:5717)
        clojure.lang.RestFn.applyTo (RestFn.java:142)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$load_libs.invokeStatic (core.clj:5774)
        clojure.core$load_libs.doInvoke (core.clj:5758)
        clojure.lang.RestFn.applyTo (RestFn.java:137)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$require.invokeStatic (core.clj:5796)
        clojure.core$require.doInvoke (core.clj:5796)
        clojure.lang.RestFn.invoke (RestFn.java:421)
        lein_droid.plugin$eval496$loading__5569__auto____497.invoke (plugin.clj:1)
        lein_droid.plugin$eval496.invokeStatic (plugin.clj:1)
        lein_droid.plugin$eval496.invoke (plugin.clj:1)
        clojure.lang.Compiler.eval (Compiler.java:6927)
        clojure.lang.Compiler.eval (Compiler.java:6916)
        clojure.lang.Compiler.load (Compiler.java:7379)
        clojure.lang.RT.loadResourceScript (RT.java:372)
        clojure.lang.RT.loadResourceScript (RT.java:363)
        clojure.lang.RT.load (RT.java:453)
        clojure.lang.RT.load (RT.java:419)
        clojure.core$load$fn__5677.invoke (core.clj:5893)
        clojure.core$load.invokeStatic (core.clj:5892)
        clojure.core$load.doInvoke (core.clj:5876)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.core$load_one.invokeStatic (core.clj:5697)
        clojure.core$load_one.invoke (core.clj:5692)
        clojure.core$load_lib$fn__5626.invoke (core.clj:5737)
        clojure.core$load_lib.invokeStatic (core.clj:5736)
        clojure.core$load_lib.doInvoke (core.clj:5717)
        clojure.lang.RestFn.applyTo (RestFn.java:142)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$load_libs.invokeStatic (core.clj:5774)
        clojure.core$load_libs.doInvoke (core.clj:5758)
        clojure.lang.RestFn.applyTo (RestFn.java:137)
        clojure.core$apply.invokeStatic (core.clj:648)
        clojure.core$require.invokeStatic (core.clj:5796)
        clojure.core$require.doInvoke (core.clj:5796)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        leiningen.core.utils$require_resolve.invokeStatic (utils.clj:102)
        leiningen.core.utils$require_resolve.invoke (utils.clj:95)
        leiningen.core.project$apply_middleware.invokeStatic (project.clj:800)
        leiningen.core.project$apply_middleware.invoke (project.clj:794)
        clojure.lang.ArrayChunk.reduce (ArrayChunk.java:58)
        clojure.core.protocols$fn__6750.invokeStatic (protocols.clj:136)
        clojure.core.protocols/fn (protocols.clj:124)
        clojure.core.protocols$fn__6710$G__6705__6719.invoke (protocols.clj:19)
        clojure.core.protocols$seq_reduce.invokeStatic (protocols.clj:31)
        clojure.core.protocols$fn__6738.invokeStatic (protocols.clj:75)
        clojure.core.protocols/fn (protocols.clj:75)
        clojure.core.protocols$fn__6684$G__6679__6697.invoke (protocols.clj:13)
        clojure.core$reduce.invokeStatic (core.clj:6545)
        clojure.core$reduce.invoke (core.clj:6527)
        leiningen.core.project$apply_middleware.invokeStatic (project.clj:796)
        leiningen.core.project$apply_middleware.invoke (project.clj:794)
        leiningen.core.project$activate_middleware.invokeStatic (project.clj:828)
        leiningen.core.project$activate_middleware.invoke (project.clj:824)
        leiningen.core.project$init_project.invokeStatic (project.clj:952)
        leiningen.core.project$init_project.invoke (project.clj:942)
        leiningen.core.project$read.invokeStatic (project.clj:1023)
        leiningen.core.project$read.invoke (project.clj:1020)
        leiningen.core.project$read.invokeStatic (project.clj:1024)
        leiningen.core.project$read.invoke (project.clj:1020)
        leiningen.core.main$_main$fn__4734.invoke (main.clj:416)
        leiningen.core.main$_main.invokeStatic (main.clj:411)
        leiningen.core.main$_main.doInvoke (main.clj:408)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        clojure.lang.Var.invoke (Var.java:379)
        clojure.lang.AFn.applyToHelper (AFn.java:154)
        clojure.lang.Var.applyTo (Var.java:700)
        clojure.core$apply.invokeStatic (core.clj:646)
        clojure.main$main_opt.invokeStatic (main.clj:314)
        clojure.main$main_opt.invoke (main.clj:310)
        clojure.main$main.invokeStatic (main.clj:421)
        clojure.main$main.doInvoke (main.clj:384)
        clojure.lang.RestFn.invoke (RestFn.java:436)
        clojure.lang.Var.invoke (Var.java:388)
        clojure.lang.AFn.applyToHelper (AFn.java:160)
        clojure.lang.Var.applyTo (Var.java:700)
        clojure.main.main (main.java:37)
    
    opened by IGJoshua 5
  • Fix for Leiningen 2.8.1

    Fix for Leiningen 2.8.1

    Fix 2 issues for latest Leiningen (Leiningen 2.8.1 on Java 1.8.0_152 Java HotSpot(TM) 64-Bit Server VM).

    java.lang.ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme

    Error: clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.sonatype.aether.util.version.GenericVersionScheme, compiling:(leiningen/droid/classpath.clj:1:1)

    Leiningen switches org.sonatype.aether to org.apache.maven.resolver.

    Upgrading to org.eclipse.aether https://github.com/cemerick/pomegranate/commit/b71ad6f0e3e88003c1ee28458af1f94bd319f6a6 Bump to Maven 3.5.0 and replace aether with maven-resolver. https://github.com/cemerick/pomegranate/commit/c4e19981c53311e52f5a8060f34b6d3b69d458bd Upgrade to pomegranate 0.4.0 https://github.com/technomancy/leiningen/commit/ea6288d3a2b054eaf60556696c10366cd050f37e

    java.io.FileNotFoundException: Could not locate reply/main__init.class or reply/main.clj on classpath.

    Error: clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate reply/main__init.class or reply/main.clj on classpath., compiling:(leiningen/droid/deploy.clj:1:1)

    Move reply to on-demand dependency. https://github.com/technomancy/leiningen/commit/6ede563f07aafe88d7d1020a9a115565a5af8f2c

    opened by ne-sachirou 4
  • problems with using [cider/cider-nrepl

    problems with using [cider/cider-nrepl "0.15.0"]

    this problem doesn't happen if I use cider-nrepl "0.9.1" or "0.10.0" . I can use these versions but will have to downgrade cider or get warnings about incompatible versions

    here's my profile.clj

    {:android-user {:dependencies [[cider/cider-nrepl "0.15.0"]]
                    :android {:aot-exclude-ns ["cider.nrepl.middleware.util.java.parser"
                                               "cider.nrepl" "cider-nrepl.plugin"]}}}```
    
    Here's the stack trace when running lein droid build:
    
    Compiling cider.nrepl.middleware.debug
    Reflection warning, cider/nrepl/middleware/pprint.clj:91:3 - reference to field close can't be resolved.
    Reflection warning, cider/nrepl/middleware/stacktrace.clj:90:19 - reference to field isDirectory can't be resolved.
    Reflection warning, cider/nrepl/middleware/stacktrace.clj:88:31 - call to method endsWith can't be resolved (target class is unknown).
    Reflection warning, cider/nrepl/middleware/util/meta.clj:182:36 - reference to field read can't be resolved.
    Reflection warning, cider/nrepl/middleware/util/meta.clj:189:28 - call to method unread can't be resolved (target class is unknown).
    Exception in thread "main" java.lang.RuntimeException: No such var: u/update-vals, compiling:(cider/nrepl/middleware/util/meta.clj:286:8)
            at clojure.lang.Compiler.analyze(Compiler.java:6553)
            at clojure.lang.Compiler.analyze(Compiler.java:6495)
            at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3747)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6735)
            at clojure.lang.Compiler.analyze(Compiler.java:6534)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6721)
            at clojure.lang.Compiler.analyze(Compiler.java:6534)
            at clojure.lang.Compiler.analyze(Compiler.java:6495)
            at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5871)
            at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5306)
            at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3935)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6731)
            at clojure.lang.Compiler.analyze(Compiler.java:6534)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6721)
            at clojure.lang.Compiler.analyze(Compiler.java:6534)
            at clojure.lang.Compiler.access$300(Compiler.java:38)
            at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:577)
            at clojure.lang.Compiler.analyzeSeq(Compiler.java:6733)
            at clojure.lang.Compiler.analyze(Compiler.java:6534)
            at clojure.lang.Compiler.analyze(Compiler.java:6495)
            at clojure.lang.Compiler.compile1(Compiler.java:7328)
            at clojure.lang.Compiler.compile(Compiler.java:7400)
            at clojure.lang.RT.compile(RT.java:408)
            at clojure.lang.RT.load(RT.java:456)
            at clojure.lang.RT.load(RT.java:421)
            at clojure.core$load$fn__5458.invoke(core.clj:5862)
            at clojure.core$load.doInvoke(core.clj:5861)
            at clojure.lang.RestFn.invoke(RestFn.java:408)
            at clojure.core$load_one.invoke(core.clj:5667)
    	at clojure.core$load_lib$fn__5407.invoke(core.clj:5707)
    	at clojure.core$load_lib.doInvoke(core.clj:5706)
    	at clojure.lang.RestFn.applyTo(RestFn.java:142)
    	at clojure.core$apply.invoke(core.clj:632)
    	at clojure.core$load_libs.doInvoke(core.clj:5745)
    	at clojure.lang.RestFn.applyTo(RestFn.java:137)
    	at clojure.core$apply.invoke(core.clj:632)
    	at clojure.core$require.doInvoke(core.clj:5828)
    	at clojure.lang.RestFn.invoke(RestFn.java:421)
    	at cider.nrepl.middleware.util.instrument$loading__5350__auto____2673.invoke(instrument.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:3633)
    	at clojure.lang.Compiler.compile1(Compiler.java:7333)
    	at clojure.lang.Compiler.compile1(Compiler.java:7323)
    	at clojure.lang.Compiler.compile(Compiler.java:7400)
    	at clojure.lang.RT.compile(RT.java:408)
    	at clojure.lang.RT.load(RT.java:456)
    	at clojure.lang.RT.load(RT.java:421)
    	at clojure.core$load$fn__5458.invoke(core.clj:5862)
    	at clojure.core$load.doInvoke(core.clj:5861)
    	at clojure.lang.RestFn.invoke(RestFn.java:408)
    	at clojure.core$load_one.invoke(core.clj:5667)
    	at clojure.core$load_lib$fn__5407.invoke(core.clj:5707)
    	at clojure.core$load_lib.doInvoke(core.clj:5706)
    	at clojure.lang.RestFn.applyTo(RestFn.java:142)
    	at clojure.core$apply.invoke(core.clj:632)
    	at clojure.core$load_libs.doInvoke(core.clj:5745)
    	at clojure.lang.RestFn.applyTo(RestFn.java:137)
    	at clojure.core$apply.invoke(core.clj:632)
    	at clojure.core$require.doInvoke(core.clj:5828)
    	at clojure.lang.RestFn.invoke(RestFn.java:2088)
    	at cider.nrepl.middleware.debug$loading__5350__auto____2184.invoke(debug.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:3633)
    	at clojure.lang.Compiler.compile1(Compiler.java:7333)
    	at clojure.lang.Compiler.compile1(Compiler.java:7323)
    	at clojure.lang.Compiler.compile(Compiler.java:7400)
    	at clojure.lang.RT.compile(RT.java:408)
    	at clojure.lang.RT.load(RT.java:456)
    
    opened by sonwh98 2
  • Wearable libraries not found?

    Wearable libraries not found?

    I wanted to try building a watch face in Clojure. Initially, things worked great - I built a standard Andriod app with an android wear Sdk requirement, and it installed and ran fine.

    Now i need to start using wear APIs, and lein-droid doesn't seem to want to find the libraries. In particular:

    I add [com.google.android.support/wearable "2.0.3" :extension "aar"] to my :dependencies , and sure enough lein droid deps finds and install that. But it the complains about:

    Could not find artifact com.android.support:percent:jar:25.2.0 in android-play-services (file:///home/mwm/Android/Sdk/extras/google/m2repository)
    Could not find artifact com.android.support:support-v4:jar:25.2.0 in central (https://repo1.maven.org/maven2/)
    Could not find artifact com.android.support:support-v4:jar:25.2.0 in clojars (https://clojars.org/repo/)
    Could not find artifact com.android.support:support-v4:jar:25.2.0 in android-support (file:///home/mwm/Android/Sdk/extras/android/m2repository)
    Could not find artifact com.android.support:support-v4:jar:25.2.0 in android-play-services (file:///home/mwm/Android/Sdk/extras/google/m2repository)
    

    This is particularly puzzling, because it looks like the next-to-last one is there:

    chokfi% ls ~/Android/Sdk/extras/android/m2repository/com/android/support/support-v4/25.2.0/
    support-v4-25.2.0.aar      support-v4-25.2.0.aar.sha1  support-v4-25.2.0.pom.md5
    support-v4-25.2.0.aar.md5  support-v4-25.2.0.pom       support-v4-25.2.0.pom.sha1
    

    Ok, it's an aar file, so let's make that explicit by adding [com.android.support/support-v4 "25.2.0" :extension "aar"] to my :dependencie. No change.

    Have I failed to understand how package names map to entries in the maven repository? Is there some workaround I can use to get these added without using lein-droid dependencies?

    opened by mwm 1
Owner
Clojure/Android
Clojure-Android initiative aims to streamline Clojure as a first-class development language for Android platform.
Clojure/Android
An easy-to-use sbt plugin for working with all Android projects

Build Android Projects Using SBT http://scala-android.org/ Change log | FAQ Auto-import from gradle using sbt-android-gradle NOTE: 1.6.0 is the last v

Scala on Android 749 Nov 20, 2022
A Gradle Plugin that removes unused resources in Android projects.

#Lint Cleaner Plugin Removes unused resources reported by Android lint including strings, colors and dimensions. Depracated As of Android Studio 2.0+

Marco RS 705 Nov 25, 2022
Jetbrains plugin for differentiating opened projects by color!

?? ?? Project-Color ?? ?? Remember your projects by color! Colorize the title bar to differentiate your open projects. Working on multiple projects si

yon 25 Dec 16, 2022
GPP is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadata.

Gradle Play Publisher Gradle Play Publisher is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and

null 3.9k Dec 30, 2022
A Gradle plugin to support the Groovy language for building Android apps

Groovy language support for Android Deprecated: This plugin has been deprecated in favor of Kotlin which has the full support of JetBrains and Google.

Groovy programming language 853 Dec 21, 2022
An Eclipse builder for Android projects using Scala

OBSOLETE This is an Eclipse plugin for the obsolete Android Eclipse development system, and isn't relevant for modern Scala on Android. OVERVIEW Andro

James Moore 136 Nov 25, 2022
Export BlueJ project archives from Gradle projects.

bluej-jar Gradle Plugin This is a Gradle plugin for producing JAR files which are valid BlueJ project archives. This plugin only works in Java project

KCL UG 5 Apr 7, 2022
Development environment for methodic projects

Methodic Super Project Get started developing faster! This superproject helps you get started building on the Methodic platform by providing a single

null 1 Mar 24, 2022
Adanced highway building bot

Description Adding fully automated highway building as plugin to Lambda. The tool places building material and destroys wrong blocks in high frequency

Lambda Plugins 47 Dec 6, 2022
gradle-android-scala-plugin adds scala language support to official gradle android plugin

gradle-android-scala-plugin gradle-android-scala-plugin adds scala language support to official gradle android plugin. See also sample projects at htt

saturday06 345 Dec 10, 2022
eventbus-intellij-plugin 3.8 0.0 L1 Java Plugin to navigate between events posted by EventBus.

eventbus-intellij-plugin Plugin to navigate between events posted by EventBus. Post to onEvent and onEvent to Post Install There are two ways. Prefere

Shinnosuke Kugimiya 315 Aug 8, 2022
IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea

IntelliJ Idea Astor Plugin IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea. It communicates with a local/remote program

null 4 Aug 28, 2021
Intellij-platform-plugin-template - IntelliJ Platform Plugin Template

IntelliJ Platform Plugin Template TL;DR: Click the Use this template button and

null 0 Jan 1, 2022
BuildPlots-Plugin - PaperMC-Plugin for build contests written in Kotlin.

BuildPlotsPlugin PaperMC-Plugin for build contests. This is my first time using Kotlin and the first plugin I've written after a long time. It is stil

Lukas Heinzl 0 Jan 1, 2022
K6-intellij-plugin - IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your IntelliJ IDE

IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your Intel

Mikhail Bolotov 8 Jan 2, 2023
Ownership-gradle-plugin - Gradle code ownership verification plugin

Gradle code ownership verification plugin A gradle plugin that will verify owner

null 4 Dec 15, 2022
A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development.

ADB Idea A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development. The following commands are provided: Uninst

Philippe Breault 2k Dec 28, 2022
IntelliJ / Android Studio plugin for Android Holo Colors

This project is not maintained anymore. Holo Colors doesn't make sense since the introduction of Material Design and the ability to set the primary co

Jérôme Van Der Linden 644 Nov 10, 2022
ADB WIFI Android Studio plugin for debug android app over Wi-Fi.

ADB WIFI ADB WIFI Android Studio plugin for debug android app over Wi-Fi. How to install in Android Studio: go to Preferences

Sutachad Wichai 298 Jan 3, 2023