wakatime / jetbrains-wakatime

IntelliJ IDEA, PyCharm, RubyMine, PhpStorm, AppCode, AndroidStudio, Goland, Rider, & WebStorm plugin for quantifying your coding.
https://wakatime.com/intellij-idea
BSD 3-Clause "New" or "Revised" License
1.12k stars 163 forks source link

/.wakatime/wakatime-cli-darwin-arm64": error=2, No such file or directory #198

Closed Sternbach-Software closed 2 years ago

Sternbach-Software commented 2 years ago

I installed WakaTime on my new 2020 M1 mac, and got the following stacktrace:

WakaTime - Cannot run program "/Users/shmuel/.wakatime/wakatime-cli-darwin-arm64": error=2, No such file or directory 
java.io.IOException: Cannot run program "/Users/shmuel/.wakatime/wakatime-cli-darwin-arm64": error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at java.base/java.lang.Runtime.exec(Runtime.java:592)
    at java.base/java.lang.Runtime.exec(Runtime.java:451)
    at com.wakatime.intellij.plugin.WakaTime.sendHeartbeat(WakaTime.java:256)
    at com.wakatime.intellij.plugin.WakaTime.processHeartbeatQueue(WakaTime.java:249)
    at com.wakatime.intellij.plugin.WakaTime.access$100(WakaTime.java:47)
    at com.wakatime.intellij.plugin.WakaTime$4.run(WakaTime.java:166)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 13 more

This is the directory contents of /shmuel/ on my fresh mac: AndroidStudioProjects Desktop Documents Downloads Movies Music Pictures Public

alanhamlett commented 2 years ago

It's not detecting your ARM processor correctly and trying to use the Intel version of the wakatime-cli binary. Here's the method that detects arm/amd:

https://github.com/wakatime/jetbrains-wakatime/blob/9e9b6982c0fe095e7a1b910b57571ae35ca3130c/src/com/wakatime/intellij/plugin/Dependencies.java#L462

It's inputs are System.getProperty("os.arch") and System.getProperty("os.name"). Can you find the value of those two system properties within the context of your IDE's Java?

gandarez commented 2 years ago

https://stackoverflow.com/questions/66410522/value-of-system-getpropertyos-arch-on-m1-mac

anmol098 commented 2 years ago

https://github.com/wakatime/wakatime-cli/releases/tag/v1.35.4

Download the darwin-arm64 zip unzip that to /Users//.wakatime/

this will resolve the issue.

alanhamlett commented 2 years ago

Also, if you delete the folder /Users/shmuel/.wakatime/ then restart Android Studio does it work?

Sternbach-Software commented 2 years ago

I don't have that folder... Sometimes the plugin works and sometimes it doesn't!

alanhamlett commented 2 years ago

It might not be displaying that folder because it starts with a dot. Does this show it?

ls -la /Users/shmuel

LunaYJ commented 2 years ago

https://github.com/wakatime/wakatime-cli/releases/tag/v1.35.4

Download the darwin-arm64 zip unzip that to /Users//.wakatime/

this will resolve the issue.

Hi, I tried your solution, but it's not work.

after I unzip the file to $HOME/.wakatime/

after several seconds, or minutes, the file will disappear.

My mac system is macOS Monterey 12.2.1

alanhamlett commented 2 years ago

Please add this line to your ~/.wakatime.cfg file: debug = true

Then restart your IDE and share your idea.log file contents: https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files

LunaYJ commented 2 years ago

Please add this line to your ~/.wakatime.cfg file: debug = true

Then restart your IDE and share your idea.log file contents: https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files

Hi thanks for reply

I have opened debug mode

and here is the log message

2022-04-01 21:29:58,544 [  32673]  DEBUG -                       WakaTime - Executing CLI: [/Users/lunazhou/.wakatime/wakatime-cli-darwin-amd64, --entity, /Users/lunazhou/Project/MY/ghost.local/content/themes/Luno/partials/comments.hbs, --time, 1648819789.9370, --key, XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXd799, --project, Luno, --alternate-language, Handlebars/Mustache, --plugin, WebStorm/2021.3.3 WebStorm-wakatime/13.1.14] 
2022-04-01 21:29:58,544 [  32673]  DEBUG -                       WakaTime - Api Key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXd799 
2022-04-01 21:29:58,548 [  32677]   WARN -                       WakaTime - Cannot run program "/Users/lunazhou/.wakatime/wakatime-cli-darwin-amd64": error=2, No such file or directory 
java.io.IOException: Cannot run program "/Users/lunazhou/.wakatime/wakatime-cli-darwin-amd64": error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at java.base/java.lang.Runtime.exec(Runtime.java:592)
    at java.base/java.lang.Runtime.exec(Runtime.java:451)
    at com.wakatime.intellij.plugin.WakaTime.sendHeartbeat(WakaTime.java:264)
    at com.wakatime.intellij.plugin.WakaTime.processHeartbeatQueue(WakaTime.java:257)
    at com.wakatime.intellij.plugin.WakaTime.access$100(WakaTime.java:47)
    at com.wakatime.intellij.plugin.WakaTime$4.run(WakaTime.java:172)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 13 more
gandarez commented 2 years ago

Is that still NOK @LunaYJ?