Я хочу разрабатывать приложения для Android на C #. На Windows я попробовал Xamarin Studio и был очень доволен этим. Есть ли способ использовать Xamarin в Ubuntu?
Я заметил, что в Интернете есть двоичные файлы Xamarin.Android для Linux, но они предназначены только для Xamarin. Android 9.22, я бы хотел использовать Xamarin.Android 10. Можно ли это сделать?
Наконец, я знаю, что Xamarin Studio для Linux не существует. Какую IDE я могу использовать вместо нее? Как мне настроить его для создания приложений Android и их развертывания?
Да, можно разработать с Xamarin. Android на Ubuntu! Однако начиная с Linux, к сожалению, официально не поддерживается Xamarin, это не столь просто, как это было бы в Windows. Короче говоря, в первую очередь, необходимо установить Java, Моно и Studio Android, затем необходимо скомпилировать Xamarin. Android самостоятельно и наконец необходимо установить любимый IDE для работы с Xamarin.
.
(Примечание: В теории Вы могли просто загрузить SDK Android и NDK, я не попробовал его все же.)
Установка Studio Android на Ubuntu была покрыта полностью в другом ТАК ответ, но я пробегусь через него быстро: сначала необходимо установить Java 8 JDK. В то время как официально рекомендуется использовать Java Oracle, OpenJDK сделает очень хорошо:
sudo apt install openjdk-8-jdk
Необходимо будет также установить JAVA_HOME
переменная для соответствия каталогу установки Java 8 JDK. Для этого добавьте эту строку к Вашему ~/.bashrc
:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Затем необходимо загрузить Studio Android и разархивировать его где-нибудь, Вам нравится, например, Ваша домашняя папка, или /opt/androidstudio
.
После того как у Вас есть он, можно запустить его и открыть SDK Manager в правом верхнем углу:
Теперь загрузите версии SDK, для которых Вы хотите быть нацеленными. Обязательно также установите NDK, тем не менее, поскольку это - то, что мы должны будем развернуть приложения Xamarin. Затем можно попытаться создать демонстрационное приложение и развернуть его на телефоне (или на рабочем эмуляторе) только, чтобы удостовериться, что все работает хорошо.
Также необходимо установить AndroidSdkDirectory
переменная среды, так, чтобы Xamarin знал, где искать установленный SDKs. Можно сделать это путем добавления этой строки к Вашему .bashrc
, .zshrc
или безотносительно оболочки Вы используете:
export AndroidSdkDirectory=~/Android/Sdk
Можно также создать псевдонимы для полезных команд:
alias sdkmanager=~/Android/Sdk/tools/bin/sdkmanager
alias avdmanager=~/Android/Sdk/tools/bin/avdmanager
alias adb=~/Android/Sdk/platform-tools/adb
alias android-emulator=~/Android/Sdk/emulator/emulator
По состоянию на октябрь 2019 Ubuntu все еще не имеет Моно 5 в своих репозиториях. Поэтому мы должны будем добавить официальные Моно репозитории (это - хорошая идея так или иначе):
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
Затем ступите, мы устанавливаем Моно пакеты разработки. Возможно, Вам не будет нужно все, но я был ленив и пошел с mono-complete
. Вам также будет нужно nuget
, поэтому давайте установим это также:
sudo apt install mono-complete nuget
Можно проверить, была ли правильная версия установлена путем попытки msbuild
команда. Старые версии Моно не имели его, поэтому если команда была найдена, Вы, вероятно, готовы пойти.
.
Существуют некоторые зависимости, должен был успешно скомпилировать Xamarin. Android. Большинство тех пакетов будет уже установлено на Вашей машине, таким образом, можно будет попытаться пропустить этот шаг и только установить тех, которые отсутствуют. Однако требуется некоторое значительное время для повторения сборки, таким образом, Вы сохраните его путем установки их сразу же:
sudo apt install autoconf autotools-dev automake cmake build-essential curl gcc g++ g++-mingw-w64 gcc-mingw-w64 git libncurses5-dev libtool libz-mingw-w64-dev libzip-dev linux-libc-dev make ninja-build p7zip-full sqlite3 vim-common zlib1g-dev linux-libc-dev:i386 zlib1g-dev:i386 libx32tinfo-dev
Выберите последний Xamarin. Исходный код Android от GitHub:
git clone https://github.com/xamarin/xamarin-android.git
cd xamarin-android
Вы, вероятно, не хотите создавать от ведущего устройства, поэтому выбираете стабильную версию в GitHub repo и проверяете его с git checkout [chosen commit hash]
. Удостоверьтесь, что также сбросили подмодули к правильной версии.
При использовании распределения, полученного на основании Ubuntu необходимо будет добавить дополнительную строку к системному коду обнаружения, чтобы заставить ее работать:
nano build-tools/xaprepare/xaprepare/OperatingSystems/Linux.cs
и под строкой
{"Ubuntu", (ctx) => new LinuxUbuntu (ctx)},
необходимо добавить строку для системы, например, для Элементарной ОС это:
{"elementary",(ctx) => new LinuxUbuntu (ctx)},
Если Вы находитесь на чистой Ubuntu, можно пропустить этот шаг.
Сначала необходимо создать все зависимости:
make prepare
И затем можно создать Xamarin. Сам Android. Если Вы только хотите быть нацеленными на последний Android, работать:
make
(Целенаправленная версия является последней версией Android, поддерживаемой Вашим приложением. Таким образом, если Вы хотите записать приложения для версий Android от 7 до 10, Вы хотите быть нацеленными v10.0
. Если Вы хотите смочь быть нацеленными на какую-либо версию Android, необходимо будет работать make jenkins
вместо этого.)
Оба из тех шагов требуют существенного количества терпения и Интернет-соединения.
Наконец можно установить Xamarin. Android к Вашей системе:
sudo make install prefix=/usr
.
Протестировать ту нашу сборку на самом деле работает, мы хотим создать и развернуть фактический проект Xamarin. Идеал с этой целью является демонстрационными проектами в xamarin/monodroid репозитории. Поэтому давайте клонируем его:
git clone https://github.com/xamarin/monodroid-samples.git
cd monodroid-samples/Button
По некоторым причинам мы должны добавить список поддерживаемого ABIs в файл проекта. Откройте его в редакторе:
nano DroidButton.csproj
И к первому PropertyGroup
добавьте эту строку:
<AndroidSupportedAbis>armeabi-v7a;arm64-v8a;x86</AndroidSupportedAbis>
Если Вы не создавали с make jenkins
, Вы также захотите измениться TargetFrameworkVersion
кому: v10.0
.
msbuild
Любой запуск виртуальное устройство в менеджере AVD (доступный, например, через Studio Android), или подключение телефон в режиме отладки и затем выполненный:
msbuild /t:Install
Это должно установить приложение на Вашем телефоне. Если Вы хотите создать и развернуться с одной командой, можно использовать /t:Build,Install
. Если Вы хотите передать дополнительные параметры ADB (например, для идентификации устройства, где развернуться), использовать /p:AdbTarget=[adb options]
, например: msbuild /t:Install /p:AdbTarget=-s1080c487
.
.
Таким образом, нам создали Xamarin! Это было долгим путешествием, не так ли? Полный неожиданностей, ухудшений и часто чистого страдания. Действительно ли это стоило того? Необходимо решить, но для меня это определенно было. Теперь, сделайте перерыв (только короткий, хотя!) и затем начинают создавать Ваше приложение мечты!