Bug 142 - Mono for Android Support on Linux
Summary: Mono for Android Support on Linux
Status: RESOLVED FIXED
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: Android Add-in ()
Version: unspecified
Hardware: PC Linux
: Lowest enhancement
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2011-08-02 01:34 UTC by stu
Modified: 2017-01-09 17:28 UTC (History)
31 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description stu 2011-08-02 01:34:21 UTC
Support a MonoDroid MonoDevelop plugin on linux.

I believe I ran across a blog entry/comment by Miguel stating that part of the issue was linux platforms not having a late enough mono runtime installed or supported.. Can't dig it up again though.
Comment 1 Miguel de Icaza [MSFT] 2011-08-04 11:52:37 UTC
We face a QA problem here.

The problem with supporting Linux is that we would need to create a self-contained Mono packaging for all of the bits we ship since most Linux distributions are slightly off when it comes to Mono.

It also means that if we advertise "Linux" we would need to QA a dozen different combination due to different Linux distributions and different editions of each distribution. 

Perhaps we would support just a single distribution and a single version, which is closer to what we have to do on Windows/Mac today.
Comment 2 Eugen Rieck 2011-08-25 12:57:36 UTC
Is a community effort acceptable?

I use Ubuntu's LTS releases with all my customers and always have to build a sane Mono myself - e.g. the packages Canonical ships with ARMEL tend to simply not work. Even badgerports is still on 2.6 with no ARM support at all.

So if there was an exact list of dependencies with versions, e.g. Mono 2.10.1 (installed to /opt/mono-2.10), Monodevelop 2.4.3 (installed to /where/ever), ... I would be willing to create such packages for always the LTS version of Ubuntu. I have had the best experiences with parallel mono installations.

This might be a base, on which a MonoDroid version for Ubuntu could build on. I'm sure, there will be others in the SUSE, Fedora, etc. Communities to do the same for these distros.
Comment 3 Eugen Rieck 2011-08-25 13:04:10 UTC
While it is not for me to say, a first model could be licensing for Windows (supported) and Linux (unsupported) on the same machine, dual-booting.
Comment 4 sclaughl 2011-09-23 12:49:59 UTC
Just want to voice support for Eugen's comments. For linux why not introduce a new licensing level below Professional which offers minimal support? Just let the various distro communities deal with it. I'd rather pay a couple hundred bucks for a minimally supported linux version than have to switch to mac or windows for android development.

Or perhaps you could support Ubuntu LTS or similar at the Professional license / support level.
Comment 5 Ralph 2012-02-06 05:48:54 UTC
a community setup version would be nice.

give me "libMonoPosixHelper.so" and "mandroid" compiled for linux x86 and x64

and I'll use the contents of the mac package for creating a linux setup
sure, it will not work without installing the prerequisites like mono 2.10 and monodevelop, but who wants to make the effort will be able to work with linux.

kind regards
Ralph
Comment 6 Nikita Tsukanov 2012-04-25 04:19:50 UTC
Ralph, you can try to use maloader (https://github.com/shinh/maloader) to run mandroid in Linux.
Comment 7 Damian Kaczmarek 2012-05-14 16:09:10 UTC
I would like to express my need and support for this issue of having Mono For Android on Linux. I was looking for a paid solution for cross platform application development and I was quite happy to find Xamarin ... until the moment I couldn't find Linux version. I initially found Miguel's blog post promising us the Linux support. I would very much consider buying your product even with basic support. I do not mind "getting my hands dirty" by getting the right versions of Mono and Mono Develop, and besides, I use openSUSE so this should closest to your own Linux setups I believe. (you being from Novell before) Is it a matter of number of potential customers to justify the Linux version? Please keep in mind that there may be people who did not go as far as to reply to this issue and simply skipped to other solutions.
Comment 8 Andrew Stone 2012-07-20 07:54:01 UTC
Guys, Linux support is important to me for a bunch of reasons... 
Kind of disappointed to see it missing. Happy to pay, that's not the issue. 

Please allow us to work under Linux. 

@Ralph have you made any progress? (happy to help).

Kind regards,
Stonie.
Comment 9 Brian Bourke-Martin 2012-11-05 11:45:56 UTC
For the record, I would like to voice my opinion that I would like to see mono for android on linux also reflecting that money is not the issue.  So there is my vote.
Comment 10 Jason 2012-11-09 23:21:17 UTC
I too would like to put my support in for this. Running VirtualBox with Windows 7 just to build and test the android applications I write is not a very good long term solution.

Please let us know if there is a timeline for this. I am willing to volunteer time to help make this a possibility for Ubuntu.
Comment 11 Brian Bourke-Martin 2012-11-14 10:36:05 UTC
Jason, have you had any luck with getting the adb to function over USB, (see https://www.virtualbox.org/ticket/6620)?  Otherwise this would be a good work around solution for the good people at Xamarin to look into fixing in the mean while so there is at least some fully functional workflow for their product while not having to run windows on hardware.
Comment 12 Jason 2012-11-15 20:30:27 UTC
Actually Brian I've been using adb over TCP as per http://stackoverflow.com/questions/1754162/remote-debugging-with-android-emulator . Then when it's time to deploy I boot into windows 7 and do the deployment from the dual boot.

I would just be nice if I didn't have to start up the virtual machine to build my android project and have the whole chain on Ubuntu. I do appreciate the suggestion though, and I may give it a try and see if it is any faster, if it works.
Comment 13 Andrew Stone 2012-11-15 20:59:55 UTC
Or maybe... there could be some acceptance by Xamarin that they are “standing on the shoulders of giants” and perhaps they really should provide at least basic Linux tools on an ethical basis?

What about all the non Novell/Xamarin devs who have contributed to MonoDevelop? What about the Linux kernel? We know you need to make a commercial venture from touch and droid... but snubbing the platform used by those that helped you get ahead? (and most on this thread have already said they are willing to pay for the tools).
Comment 14 Brian Bourke-Martin 2012-11-16 09:22:32 UTC
Jason, I have but one computer so that solution will not work for me as I am hoping to debug directly on my phone.  Personally I love VirtualBox but this bug is starting to get under my skin a bit.  I know that you can run vmware and it can communicate no problem over USB, but am trying to avoid using another closed source solution.  My work does allow the presence of wifi so I have no ability to connect via network so that is out as well.  Ho hum.... makes me kinda regret choosing monodroid.
Comment 15 Jason 2012-11-18 10:28:59 UTC
Brian and Andrew,

   I agree wholeheartedly that it's a shame Xamarin is not selling a Linux port, and it's horrible that we have to use virtual machines to build. I tried the USB route, but it didn't work for me. I'll try to spend some more time later and see if I can figure out why. Maybe I just didn't set something right.

   As I said before I'd being willing to pay to get monodroid on Ubuntu or, if they desire, I can offer up some of my time to help make it possible.

   It has been over a year since Icaza has commented on this enhancement though, so I would find it interesting if he would drop by again and tell us if they are planning to support Linux at some point. Otherwise they should close this ticket so we know not to get our hopes up.
Comment 16 goldpicker 2012-11-27 07:20:44 UTC
mono monodevelop can run in ubuntu.
but mono android can't run in ubuntu?
why???????

if mono android can run in ubuntu, I will buy a license, or I will continue use eclipse and java.
because our computer all run ubuntu.
Comment 17 kupiakos@gmail.com 2012-12-07 16:16:01 UTC
I'd like to wonder why Xamarin went this route.
Considering that MonoDevelop, the Android IDE, and Mono all exist in Linux, it strikes me as odd that Mono for Android is not supported in Linux.
I saw an ad for Mono for Android yesterday, and was excited when I realized I could develop for all systems (Windows, Mac, Linux, Android, and iOS) simultaneously without a large amount of effort. That was until I realized that they don't support Linux.
You could at least respond and give us a reason why you don't support Linux, Xamarin. I haven't seen anything.
Comment 18 Andrew Stone 2012-12-07 17:51:09 UTC
So, I think the upshot is this: to actually build cross platform mobile apps with Xamarin's mono touch and droid means that you will need a Mac to build the Mac bits (a VM will work but is not allowed under Apple's licence agreement even if you paid for the OS).

In that case, If you really are building cross platform apps then you _need_ a Mac and by extension the argument in this bug is then potentially moot. 

On the other hand, if you are a Linux user and only want to build Android apps then it should be clear by now that you should forget about Mono Droid and use Google's Java and Eclipse, which runs just fine on Linux.

If you are a Linux user that wants to build mono touch apps with the thought that you will one day buy a Mac and port your app to iOS, realise that Xamarin is ignoring you... (I guess because you represent a small market share). So, give in and buy a Mac or switch and use Eclipse and Java instead (I think  Xamarin's actions are here ethically unsound... but hey they world isn't fair).

Migel himself has given up on Linux: http://tirania.org/blog/archive/2012/Aug-29.html Therefore, is it time to give up on Xamarin providing Linux support?

To extend all this a step further...

“Many people who were talking about Free Software are the people talking about the open web now,” de Icaza says. From: http://www.wired.com/wiredenterprise/2012/08/osx-killed-linux/

Therefore, if the future is the “web” then why not ditch the ideas above completely and build your app with HTML5 / CSS3 and Javascript? Sure the tools are green but they won't stay that way. 

The world changes quickly and if you are on Linux then you are already well placed to work with emergent technologies... It's time to move on... Long live the web! :)
Comment 19 goldpicker 2012-12-18 11:06:32 UTC
We need monoAndroid can work in mac and linux.
We have two team.
We wish use mono to develop IosApp on mac and use mono to develop android on linux.
Why monoandroid not support linux. Linux will dead?
Comment 20 Sonny To 2013-02-02 20:55:16 UTC
I second that. Mono runs on Linux so there's no reason monoTouch and monoDroid can't run on Linux. I already bought a license for both monoDroid and monoTouch a year ago without knowing that you don't support Linux.  I had to install windows on a VM just to use monoDroid which is ridiculous. I'm not renewing my license until there is support for Linux
Comment 21 Jonathan Pryor 2013-02-03 20:15:07 UTC
> there's no reason monoTouch

MonoTouch needs to link against object files that are provided by the Apple SDK (e.g. libc.dylib). There is EVERY reason that MonoTouch cannot work on Linux, unless you happen to know an easily (legally!) shippable set of library files to use for linking.

> and monoDroid

See Comment #1. See also the fact that the Android SDK is required to operate, and the Android SDK will NOT run on every flavor of Linux imaginable. (For example, 1-2 years ago I upgraded my Android SDK and it no longer worked on my then not-too-ancient Suse install -- it was only 1-2 releases "old", iirc.)

Then see Comment #1 again.
Comment 22 Sonny To 2013-02-03 20:21:01 UTC
if gcc and llvm can be hacked to compile iOS binaries, there's no technical reason monoTouch can't either. are you saying its illegal to copy iOS libraries into a linux file system? thats ridiculous... that cant be legal.

Just support the major linux distributions... there are only two: ubuntu and redhat. Android SDK work on both (I've tested)
Comment 23 Damian Kaczmarek 2013-02-04 05:59:59 UTC
Shipping cross-distro is not easy but one does not have to target all the distros. Just see Valve and their Steam release for Linux, they target solely Ubuntu and yet I managed to run their .deb file on openSUSE without a sweat. The point being ... community can handle some rough edges. If consumer centered company ships on Linux then a developer centered company not doing so is kind of ridiculous. Especially one which bases on a project which was made originally for Linux. 

But ultimately the whole argument assumes that appealing to a large group of hackers for whom Linux is the platform of choice, is a good idea ... maybe you think otherwise. That's your prerogative.
Comment 25 Daniel Hughes 2013-06-22 07:35:39 UTC
According to the wikimedia stats ubuntu has 50 times more market share then the next largest desktop linux distro. (that's not 50% more its 50 times more) This is bigger then the difference between windows and mac.

There should be no question about what distro to support, it's ubuntu period. 

Ubuntu is also a major OS when it comes to (non c#) android development. It's officially supported and everything works there. Xamarin for android being on ubuntu just makes sense. The same as Xamarin for IOS being on Mac.
Comment 26 Nikita Tsukanov 2013-06-23 08:18:51 UTC
Since Micro Bauer has already (December 2013) prepared packaging of Mono 3.0 for Debian Sid, it is likely be included in Ubuntu 13.10, so I no longer see any problems with "outdated" Mono.
Comment 28 Deprecated 2013-08-19 22:09:04 UTC
I want Linux support too.

But I also agree with de Icaza about the QA problem.

The real root solution for current situation of Linux is to *remove* non-core FOSS, for example, Mono from the repositories. Temporally catching up the version is worthless.
Comment 29 Daniel Hughes 2013-08-19 23:59:25 UTC
@Ma Xiaojun

Mono is not being removed from anything.

Yes mono is not in the ubuntu default install, but it's in the repositories. FYI java isn't either but the Android SDK has first class support on ubuntu.

Nothing foss is being removed from the repositories, where is this information coming from?

There is no QA problem as stated above, you develop for ubuntu, it has over 95% percent of the desktop market share, (server share is irrelevant, you don't develop on servers)
Comment 30 Dylan Borg 2014-02-21 11:32:48 UTC
Can't they make a completely unsupported version for who has up to date mono runtimes on linux?
Comment 31 Deprecated 2014-02-21 20:56:14 UTC
@Dylan Borg

Can't Linux distributions offer a sane way of software deployment? Can't those clueless "packagers" give up their worthless work?
Comment 32 Damian Kaczmarek 2014-02-21 21:42:17 UTC
@Ma Xiaojun

Oh come on, that is just a poor excuse. More complex software has been made to work cross-platform on Linux. How does Windows handle package management? Oh, let me guess - it doesn't. You can ship static libraries and whole dependency tree on Linux as well, you do not need to rely on package managers.
Comment 33 Deprecated 2014-02-21 21:45:36 UTC
@Damian Kaczmarek

> More complex software has been made to work cross-platform on Linux.

True. Except that they are mostly proprietary and thus prevented clueless "packagers" from worthless packaging.
Comment 34 Daniel Hughes 2014-02-21 23:38:22 UTC
Google supports the android SDK on ubuntu, therefore it is definitely possible and feasible for Xamarin to do the same.

All the other dibble is simply an excuse, if Xamarin wanted to support linux they could do so. It seems they simply don't want to.
Comment 35 Dylan Borg 2014-03-14 11:24:40 UTC
People are intelligent enough to switch to git/tarballs instead of the packaged versions. As for this case had the mandroid binary not used CoreFoundation but instead used standard libraries like libc etc. it would have been easier to port over.
Comment 36 Jonathan Pryor 2014-03-14 11:31:45 UTC
> As for this case had the mandroid binary not used CoreFoundation but
> instead used standard libraries like libc etc.

Where'd you even get this idea from? If that were the case, it wouldn't run on Windows either...
Comment 37 Dylan Borg 2014-03-14 12:14:58 UTC
On Mac it does need CoreFoundation..I have checked.
Comment 38 Dylan Borg 2014-07-02 11:21:05 UTC
For who mentioned maloader, that will not work.
Comment 39 Drew DeVault 2015-06-25 11:52:24 UTC
Voicing support for Android dev on Linux.
Comment 40 Roman M. Yagodin 2015-12-17 10:03:42 UTC
I'm very interested in Linux support too. I know that Xamarin now provide Mono repositories for major Linux distros at http://www.mono-project.com/download/#download-lin - great thanks for this! But does it updated the view of the team on the Xamarin support on Linux?
Comment 41 David Cuccia 2016-02-28 20:27:06 UTC
I'm very interested in Linux support as well. I work for an open-source project on scientific computing (virtualphotonics.org), and it would be fantastic to have Xamarin.Forms across all three platforms. Perhaps the good news this week is a boon for such developments??
Comment 42 Emil Alasgarov 2016-03-22 09:32:57 UTC
I think it's just an excuse. You could support only one "Linux", as it was made by Oracle for Oracle Database.
Comment 43 Miguel de Icaza [MSFT] 2016-08-03 14:37:54 UTC
You can now build this with the open source version.

We are going to track the IDE support as a feature not a bug, elsewhere.
Comment 44 Ismael Olea 2016-08-04 10:26:11 UTC
> You can now build this with the open source version.

Thanks Miguel!

We love you all!

Is there any URL with updated info about how to build for Android?
Comment 45 Jonathan Pryor 2016-08-04 14:15:02 UTC
@Ismael: Please try the macOS build instructions on Linux:

https://github.com/xamarin/xamarin-android#build

Two internal developers are able to build it, but we don't yet have a Jenkins+Linux bot, so I don't know how reliable it is.
Comment 46 Pritam Baral 2016-08-06 18:30:50 UTC
> You can now build this with the open source version.

That is awesome! Thanks, Miguel!

> We are going to track the IDE support as a feature not a bug, elsewhere.

Any link to that. Would like to just keep an eye on that. :)