skrugly / mirakle

Gradle plugin to move build process to remote machine.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android Studio BumbleBee issues - unusable

JasonTheDynamite opened this issue · comments

If I use:
rsyncFromRemoteArgs += ["--info=progress2"]
or
rsyncToRemoteArgs += ["--info=progress2"]

i get this error:
image

Before updating to android studio bubmlebee everything worked fine

If I comment above lines from ./gradle/init.d file - almost everything works. Build etc.
But does not build lastest version of my code. If I make any changes to my code - they are not reflected on emulator and/or physical device. Cleaning etc does not help.
If I turn off mirakle - everything starts working fine.

Version: 1.4.3

At this point it's unsable.

Sender: macOS Monterey, rsync: 3.2.3
Receiver (build happens here): ubuntu 20.04, rsync: 3.1.3

After changing anything i any .gradle file on local machine - everything works fine and changes are reflected on emulator.

Thanks for the report, I encounter the same issue. Working on a fix.

Error message that you posted says you have rsync 2.6.9.
You should follow these instructions to get it updated.
But in my case Gradle still uses 2.6.9 when running from Android Studio. Didn't found a fix for this yet.

Yes it indicates that I have rsync 2.6.9 its true because MacOS uses 2.6.9 and it can not be changed.
BUT: I use rsync version 3.2.3 installed using homebrew. Technically everybody on MacOS has at least two versions of rsync. One for the system because apple decided that way and the second is being used by the user. Before BumbleBee Android studio used that second newer version of RSYNC and there were no issues. I have everything set up correctly in my bashrc etc files. After updating to bumblebee suddenly I get this error and it indicates that I use 2.6.9 which is strange...

Try to add these lines to mirakle_init.gradle

taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(":uploadToRemote")) {    
        def argsCopy = gradle.rootProject.uploadToRemote.args
        gradle.rootProject.uploadToRemote.commandLine = "/usr/local/bin/rsync"
        gradle.rootProject.uploadToRemote.args = argsCopy 
    }
}

ok but where ? beginngin ? end ? in rootProject ?

currently this file looks like this:
image
I know it looks awful - I experiment all the time with it :)

Add it to the end of the file

Could you be more specific about that issue, where it comes from. Please send last lines from the build log.
And also replace the lines in mirakle_init.gradle by new ones:

taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(":uploadToRemote")) {    
        def argsCopy = gradle.rootProject.uploadToRemote.args
        gradle.rootProject.uploadToRemote.commandLine = "/usr/local/bin/rsync"
        gradle.rootProject.uploadToRemote.args = argsCopy 
    }

    if (taskGraph.hasTask(":downloadFromRemote")) {    
        def argsCopy = gradle.rootProject.downloadFromRemote.args
        gradle.rootProject.downloadFromRemote.commandLine = "/usr/local/bin/rsync"
        gradle.rootProject.downloadFromRemote.args = argsCopy 
    }
}

Performing CLEAN and/or BUILD:
image

There is nothing more. This is all I can find.

Could you click on the first line which contains Build ... 2 sec, 518 ms, it should open full log window

Also try to disable downloadInParallel and fallback

image

No such file or directory probably means there is no such thing as: usr/local/bin/rsync
This folder does not contain rsync.

Contents of .bash_profile located in users/MyUserName/
image

Everything was fine until I upgraded to bumbleBee. Rsync was configured according to this and other tutorials - how to do it on MacOS

Invoke which rsync in terminal to find where is rsync installed and replace these lines which I send with your path.

gradle.rootProject.uploadToRemote.commandLine = "YOUR_PATH_TO_RSYNC_HERE"
gradle.rootProject.downloadFromRemote.commandLine = "YOUR_PATH_TO_RSYNC_HERE"

which rsync:
/opt/local/bin/rsync

Started working but:

image

Check that you have at least com.android.tools.build:gradle:7.1.0 and Gradle 7.3.
And do in Android Studio File - Invalidate Caches

image
image

Started working without invalidating caches.

Yesterday when I was searching for any kind of solution to this problem I used gradle 7.1.0 and it did not work.
Now it's ok.

I will get back after testing. It might take more than 3 days :)
Thanks for help.

Tell me please - is this my fault or bumblebee has some changes which impact mirakle ? or maybe something is messed up with rsync ?

Glad we get it working finally!
Seems it's some bumblebee change, I'm still investigating it.

If someone else has the same issue in Android Studio Bumblebee please let me know in this issue.

It's solely Bumblebee issue, closing this.