AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1177970
Accepted
m93a
m93a
Asked: 2019-10-02 10:16:54 +0800 CST2019-10-02 10:16:54 +0800 CST 2019-10-02 10:16:54 +0800 CST

如何使用 Xamarin 为 Android 开发?

  • 772

我想用 C# 开发适用于 Android 的应用程序。在 Windows 上,我尝试了 Xamarin Studio,我对此非常满意。有没有办法在 Ubuntu 上使用 Xamarin?

我注意到互联网上有适用于 Linux 的Xamarin.Android 二进制文件,但这些仅适用于 Xamarin.Android 9.22,我很想使用 Xamarin.Android 10。可以这样做吗?

最后,我知道没有适用于 Linux 的 Xamarin Studio。我可以使用什么 IDE 来代替它?如何设置它以构建 Android 应用程序并部署它们?

android mono dotnet android-sdk
  • 1 1 个回答
  • 11873 Views

1 个回答

  • Voted
  1. Best Answer
    m93a
    2019-10-02T10:16:54+08:002019-10-02T10:16:54+08:00

    简短的回答

    是的,您可以在 Ubuntu 上使用 Xamarin.Android 进行开发!但是,遗憾的是,由于 Linux 没有得到 Xamarin 的正式支持,因此它不像在 Windows 上那样简单。简而言之,首先你必须安装 Java、Mono 和 Android Studio,然后你必须自己编译 Xamarin.Android,最后你必须设置你最喜欢的 IDE 来使用 Xamarin。

    .

    先决条件

    安装 Android Studio

    (注:理论上你可以只下载Android SDK和NDK,不过我没试过。)

    在 Ubuntu 上安装 Android Studio 已在另一个 SO 答案中进行了全面介绍,但我会快速介绍:首先您需要安装 Java 8 JDK。虽然官方推荐使用 Oracle Java,但 OpenJDK 就可以了:

    sudo apt install openjdk-8-jdk
    

    您还需要设置JAVA_HOME变量以匹配 Java 8 JDK 的安装目录。为此,请将此行添加到您的~/.bashrc:

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    

    然后,您必须下载 Android Studio并将其解压缩到您喜欢的位置,例如您的主文件夹或/opt/androidstudio.

    拥有它后,您可以启动它并在右上角打开 SDK Manager:

    SDK 管理器

    现在下载您要定位的 SDK 版本。不过,请务必安装 NDK,因为这是我们部署 Xamarin 应用程序所需要的。然后,您可以尝试构建一个示例应用程序并将其部署到您的手机(或正在运行的模拟器),以确保一切正常。

    您还需要设置AndroidSdkDirectory环境变量,以便 Xamarin 知道在哪里查找已安装的 SDK。您可以通过将此行添加到您的.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 年 10 月,Ubuntu 的存储库中仍然没有 Mono 5。因此,我们必须添加官方的 Mono 存储库(无论如何这是个好主意):

    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 开发包。也许您不需要所有东西,但我很懒惰并选择了mono-complete. 您还需要nuget,所以让我们也安装它:

    sudo apt install mono-complete nuget
    

    msbuild您可以通过尝试该命令来检查是否安装了正确的版本。旧版本的 Mono 没有它,所以如果找到该命令,您可能已经准备好开始了。

    .

    编译 Xamarin.Android

    依赖项

    成功编译 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
    

    克隆

    从 GitHub 获取最新的 Xamarin.Android 源代码:

    git clone https://github.com/xamarin/xamarin-android.git
    cd xamarin-android
    

    您可能不想从 master 构建,因此请在GitHub 存储库中选择一个稳定版本并使用git checkout [chosen commit hash]. 确保还将子模块重置为正确的版本。

    系统检测

    如果您使用的是从 Ubuntu 派生的发行版,则必须在系统检测代码中添加额外的一行以使其正常工作:

    nano build-tools/xaprepare/xaprepare/OperatingSystems/Linux.cs
    

    并在线下

    {"Ubuntu",    (ctx) => new LinuxUbuntu (ctx)},
    

    您必须为您的系统添加一行,例如。对于 Elementary OS,它是:

    {"elementary",(ctx) => new LinuxUbuntu (ctx)},
    

    如果您使用的是纯 Ubuntu,则可以跳过此步骤。

    建造

    首先,您必须构建所有依赖项:

    make prepare
    

    然后您可以自己构建 Xamarin.Android。如果您只想针对最新的 Android,请运行:

    make
    

    (目标版本是您的应用程序支持的最新 Android 版本。因此,如果您想为 7 到 10 的 Android 版本编写应用程序,您需要 target v10.0。如果您希望能够定位任何版本的 Android,您将必须运行make jenkins。)

    这两个步骤都需要大量的耐心和互联网连接。

    安装

    最后,您可以将 Xamarin.Android 安装到您的系统:

    sudo make install prefix=/usr
    

    .

    使用 Xamarin

    设置项目

    为了测试我们的构建是否真正有效,我们想要构建和部署一个实际的 Xamarin 项目。xamarin/monodroid存储库中的演示项目非常适合此目的。所以让我们克隆它:

    git clone https://github.com/xamarin/monodroid-samples.git
    cd monodroid-samples/Button
    

    添加支持的 ABI

    出于某种原因,我们需要将支持的 ABI 列表添加到项目文件中。在编辑器中打开它:

    nano DroidButton.csproj
    

    并在第一PropertyGroup行添加以下行:

    <AndroidSupportedAbis>armeabi-v7a;arm64-v8a;x86</AndroidSupportedAbis>
    

    如果您没有使用 构建make jenkins,您还需要将 更改TargetFrameworkVersion为v10.0。

    建造

    msbuild
    

    部署

    要么在 AVD Manager 中启动一个虚拟设备(例如通过 Android Studio 访问),要么在调试模式下连接手机,然后运行:

    msbuild /t:Install
    

    这应该将应用程序安装到您的手机上。如果你想用一个命令构建和部署,你可以使用/t:Build,Install. 如果您想向 ADB 传递额外的参数(例如识别要部署的设备),请使用/p:AdbTarget=[adb options],例如:msbuild /t:Install /p:AdbTarget=-s1080c487.

    .

    概括

    所以我们已经设置了 Xamarin!这是一个漫长的旅程,不是吗?充满惊喜、失望和通常纯粹的痛苦。它值得吗?你来决定,但对我来说绝对是。现在,休息一下(不过只有一小段时间!),然后开始构建您的梦想应用程序!

    • 9

相关问题

  • 在 Android 手机和 Ubuntu 之间同步笔记?

  • 我可以在 Ubuntu 上运行 Android 应用程序吗?

  • 安卓手机能和 Ubuntu 同步吗?

  • 如何在 Ubuntu 上开发 .NET 应用程序?

  • 我在哪里可以找到 F# 包?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve